Array.prototype反復メソッドって何?
これです
反復メソッド - Array.prototype - MDN
要するに、配列の各要素に対してループ処理をして何かうまいことやるためのメソッドたち。
下記のメソッドは全て上記ページにリンクがあるので、詳しいことの確認は上記ページからどうぞ。
それぞれこう使おう
配列の中からいくつかは採用して、いくつかは捨てたい
👉 Array.prototype.filter()
コールバックの中で、採用したい要素が満たす条件をBooleanで指定します。
ふつう、入力する配列と出力する配列の要素数が異なりそうなときに使いますね。
配列の中から一つだけ採用したい
👉 Array.prototype.find()
filterの返り値が一つになったバージョンとも言えます。
複数ある場合、配列の中で最初に見つかった要素だけを返します。
余談
find()は要素の存在を確かめたい場合にも使えますが、その用途だとArray.prototype.includes()の方が適任です。
配列の各要素を使って処理したい
👉 Array.prototype.forEach()
返り値はありません。処理の結果が欲しい場合は別のメソッドを。
各要素に処理した結果を保持するならmapを一番よく使うと思う。
配列の各要素に何か処理をして、新しい配列にしたい
👉 Array.prototype.map()
コールバックの中で、各要素に対する処理を記述します。
(数値の)配列の各要素を全て2倍した配列が欲しいなんてときに使います。
配列の各要素を合計とかしたい
👉 Array.prototype.reduce()
返り値は一つの値になります。
取得したい結果の初期値を与えておいて、ループの中で①各要素に何か処理する、②結果に処理済みの値を作用させる、という処理を延々続けるイメージです。
どれか一つでも該当するか調べたい
👉 Array.prototype.some()
コールバックの中に、各要素のうちどれか一つでも該当してほしい条件を指定します。
Array.prototype.includes()とは違って、特定の要素が存在することの確認だけでなく(数値の)配列の中にどれか一つでも偶数があるか?みたいな使い方ができます。
全ての要素が該当するか調べたい
👉 Array.prototype.every()
someが全要素になったパターンとも言えます。
コールバックの中に、各要素の全てにおいて該当してほしい条件を指定します。