関数に基づいて一意の配列値をフィルタリングする

JavaScriptJavaScriptBeginner
オンラインで実践に進む

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、JavaScript の比較関数に基づいて一意の値が除外された配列を作成する方法を学びます。Array.prototype.filter()Array.prototype.every() メソッドを使用して、一意でない値のみを含む配列を作成します。この実験では、比較関数を使用して一意の配列値をフィルタリングする実践的な経験を提供します。

関数に基づいて一意の配列値をフィルタリングする

比較関数 fn に基づいて一意の値を除外することで、一意でない値のみを含む配列を作成する方法は次のとおりです。

const filterUniqueBy = (arr, fn) =>
  arr.filter((v, i) => arr.some((x, j) => (i !== j) === fn(v, x, i, j)));

この関数を使用するには、filterUniqueBy() に 2 つの引数を渡します。フィルタリングしたい配列と比較関数です。比較関数は 4 つの引数を取る必要があります。比較対象の 2 つの要素の値とそれらのインデックスです。

たとえば、オブジェクトの配列があり、一意の id 値を持つオブジェクトを除外したい場合は、次のようにできます。

filterUniqueBy(
  [
    { id: 0, value: "a" },
    { id: 1, value: "b" },
    { id: 2, value: "c" },
    { id: 3, value: "d" },
    { id: 0, value: "e" }
  ],
  (a, b) => a.id == b.id
); // [ { id: 0, value: 'a' }, { id: 0, value: 'e' } ]

コーディングの練習を始めるには、ターミナル/SSH を開いて node と入力します。

まとめ

おめでとうございます!関数に基づいて一意の配列値をフィルタリングする実験を完了しました。技術力を向上させるために、LabEx でさらに実験を行って練習してください。