はじめに
この実験では、指定された比較関数に基づいて配列内のすべての一意の値を見つけるのに役立つ JavaScript 関数を探ります。指定された比較関数に基づいて、各値の最初の一意の出現のみを含む新しい配列を作成するために、Array.prototype.reduce() と Array.prototype.some() メソッドを使用します。この実験では、JavaScript における配列の操作方法を深く理解することができます。
関数を使って配列から一意の値を見つける
配列のすべての一意の値を見つけるには、比較関数を提供します。
Array.prototype.reduce() と Array.prototype.some() を使って、各値の最初の一意の出現のみを含む配列を作成します。比較関数 fn は、比較対象の 2 つの要素の値を 2 つの引数として受け取ります。
const uniqueElementsBy = (arr, fn) =>
arr.reduce((acc, v) => {
if (!acc.some((x) => fn(v, x))) acc.push(v);
return acc;
}, []);
この関数をテストするには、以下の例を使います:
uniqueElementsBy(
[
{ id: 0, value: "a" },
{ id: 1, value: "b" },
{ id: 2, value: "c" },
{ id: 1, value: "d" },
{ id: 0, value: "e" }
],
(a, b) => a.id == b.id
); // [ { id: 0, value: 'a' }, { id: 1, value: 'b' }, { id: 2, value: 'c' } ]
ターミナル/SSH を開いて node と入力することでコーディングの練習を始めましょう。
まとめ
おめでとうございます!関数に基づく配列内の一意の値の実験を完了しました。スキルを向上させるために、LabEx でさらに実験を練習できます。