Open5

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

kaiyu(migratoryfish)kaiyu(migratoryfish)

Array.prototype.find()

  • 疎配列では値が割り当てられているもののみを呼び出すメソッドに比べて効率的ではない

補足

  • 配列内で見つかった要素の添字が必要な場合は、findIndex() を使用
  • 値の添字を検索する必要がある場合は、indexOf() を使用してください。(findIndex() と似ていますが、それぞれの要素の等価性はテスト関数ではなく値でチェックします。)
  • findLastIndex()という最後の要素版もある
  • 配列内に値が存在するかどうかを調べる必要がある場合は、 includes() を使用してください。
  • 指定したテスト関数を満たす要素があるかどうかを調べる必要がある場合は、 some() を使用してください。

コールバック関数を満たす最初の"要素"を返す。つまり複数の要素は返さない
最後の要素を返してほしい場合はfindLast()を使えばよいらしい
要素ではなく、あるかないか(boolean)が知りたいならsome()を使えということか?
includes()とsome()の違いはincludes()が"値"があるかどうかで、some()はコールバック関数に合格したやつがあるかどうかの違いみたいだ

ということはfind()とincludes()の違いは…???

https://www.digitalocean.com/community/tutorials/js-array-search-methods-ja

どうやらシンプルな順に並べるとこうらしい
[値で検索/booleanを返す]includes() < [コールバック関数/要素を返す]find()
[値で検索/indexを返す]indexOf() < [コールバック関数/indexを返す]findIndex()

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/find