Open5
JSでの気づきをメモする Array編

Array.prototype.every()
- 短絡評価/途中で条件が偽のものがあればevery メソッドはただちに false を返します
- このメソッドを空の配列に対して呼び出すと、無条件に true を返します。

Array.prototype.some()
- 短絡評価/途中で一致するものがあればそこでtrueを返す
- このメソッドは空の配列ではあらゆる条件式に対して false を返します。

Array.prototype.filter()
- 参照中の配列の同時進行での変更は(特殊な場合を除いて)普通は避けるべきです。多くの場合、理解しにくいコードになります。
というか出来るんだ…という感想

Array.prototype.find()
- 疎配列では値が割り当てられているもののみを呼び出すメソッドに比べて効率的ではない
補足
- 配列内で見つかった要素の添字が必要な場合は、findIndex() を使用
- 値の添字を検索する必要がある場合は、indexOf() を使用してください。(findIndex() と似ていますが、それぞれの要素の等価性はテスト関数ではなく値でチェックします。)
- findLastIndex()という最後の要素版もある
- 配列内に値が存在するかどうかを調べる必要がある場合は、 includes() を使用してください。
- 指定したテスト関数を満たす要素があるかどうかを調べる必要がある場合は、 some() を使用してください。
コールバック関数を満たす最初の"要素"を返す。つまり複数の要素は返さない
最後の要素を返してほしい場合はfindLast()を使えばよいらしい
要素ではなく、あるかないか(boolean)が知りたいならsome()を使えということか?
includes()とsome()の違いはincludes()が"値"があるかどうかで、some()はコールバック関数に合格したやつがあるかどうかの違いみたいだ
ということはfind()とincludes()の違いは…???
どうやらシンプルな順に並べるとこうらしい
[値で検索/booleanを返す]includes() < [コールバック関数/要素を返す]find()
[値で検索/indexを返す]indexOf() < [コールバック関数/indexを返す]findIndex()

Array.prototype.reduce()
- reduce() は関数型プログラミングの中心的な概念です。
reduceってどういう意味で使ってるのか。useReducerとかも
削る/減圧/etc…