しかし 条件を指定した場合にフィルタする目的の場合に 指定なしということは true という扱いは少なくないです
なので some と every に配列が空の場合に逆の値を返すバージョンがあると便利です
配列を取得してから一旦変数に入れて もし空ならと判断するより取得してからそのままメソッドに渡せたほうがいいですから
なので any, all メソッドを作りました
名前は .NET で some, every に当たるものです
.NET とは結果が違うので混乱しそうでもありますが JavaScript ですし some, every があるので別にいいかなと
Object.assign(Array.prototype, {
any(...a) {
if (this.length === 0) return true
return this.some(...a)
},
all(...a) {
if (this.length === 0) return false
return this.every(...a)
},
})
[1].some(e => true)
// true
[1].some(e => false)
// false
[].some(e => true)
// false
[].some(e => false)
// false
[1].any(e => true)
// true
[1].any(e => false)
// false
[].any(e => true)
// true
[].any(e => false)
// true
[1].every(e => true)
// true
[1].every(e => false)
// false
[].every(e => true)
// true
[].every(e => false)
// true
[1].all(e => true)
// true
[1].all(e => false)
// false
[].all(e => true)
// false
[].all(e => false)
// false