はじめに
この実験では、与えられた比較関数に基づいて配列から値をフィルタリングする方法を探ります。これを達成するために、Array.prototype.filter() と Array.prototype.findIndex() メソッドを使用します。また、比較関数が提供されない場合にデフォルトの厳密等値比較関数をどのように使用するかも学びます。
関数に基づいて配列から値をフィルタリングする方法
与えられた比較関数に基づいて配列からすべての値をフィルタリングするには、次の手順に従います。
- ターミナル/SSH を開き、コーディングの練習を始めるために
nodeと入力します。 Array.prototype.filter()とArray.prototype.findIndex()を使用して適切な値を見つけます。- デフォルトの厳密等値比較関数を使用するには、最後の引数
compを省略します。 - 次のコードを使用します。
const differenceWith = (arr, val, comp = (a, b) => a === b) =>
arr.filter((a) => val.findIndex((b) => comp(a, b)) === -1);
- 次の例を使用して関数をテストします。
differenceWith(
[1, 1.2, 1.5, 3, 0],
[1.9, 3, 0],
(a, b) => Math.round(a) === Math.round(b)
); // 予想される出力:[1, 1.2]
differenceWith([1, 1.2, 1.3], [1, 1.3, 1.5]); // 予想される出力:[1.2]
まとめ
おめでとうございます!関数に基づく配列の差分の実験を完了しました。スキルを向上させるために、LabEx でさらに実験を行って練習できます。