はじめに
この実験では、配列内で特定の条件を満たす最後の n 要素を見つける概念を探ります。配列を反復処理するための for ループを使用し、各要素に対して提供された関数を実行する方法を学びます。また、一致する要素を結果配列の先頭に追加し、必要な長さに達したらそれを返すための Array.prototype.unshift() メソッドの使い方も学びます。
最後の N 個の一致を見つけるための指示
特定の条件に一致する最後の n 要素を見つけるには、次の手順に従います。
- ターミナル/SSH を開き、コーディングを練習するために
nodeと入力します。 - 以下に提供されている
findLastN関数を使用します。 - 一致させたい要素に対して真値を返す配列
arrとmatcher関数を提供します。 - 任意で、返したい一致の数
nも提供できます(デフォルトは 1)。 - 関数は、最後の要素から始まる
forループを使用して、arrの各要素に対してmatcher関数を実行します。 - 要素が
matcher条件に一致する場合、その要素はArray.prototype.unshift()を使用して結果配列に追加されます。これは配列の先頭に要素を追加します。 - 結果配列の長さが
nに等しくなると、関数は結果を返します。 - 一致するものがない場合、または
nが一致する数より大きい場合、空の配列が返されます。
const findLastN = (arr, matcher, n = 1) => {
let res = [];
for (let i = arr.length - 1; i >= 0; i--) {
const el = arr[i];
const match = matcher(el, i, arr);
if (match) res.unshift(el);
if (res.length === n) return res;
}
return res;
};
以下は、findLastN 関数の使い方のいくつかの例です。
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 2); // [4, 6]
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 5); // [2, 4, 6]
まとめ
おめでとうございます!最後の N 個の一致を見つける実験を完了しました。スキルを向上させるために、LabEx でさらに実験を行って練習してください。