JavaScript での配列の違いの検索: 交差、差、対称差
JavaScript では、配列を要素ごとに比較するのは面倒な場合があります。このプロセスを簡略化するために、強力なツール Array.prototype.includes().
Intersection
両方の配列に共通の値を取得するには、次のようにします。 filter() を使用できます。例:
let intersection = arr1.filter(x => arr2.includes(x));
これにより交差が生成されます: [2, 3].
Difference
arr1 にのみ存在する値を識別するには、 arr2 に存在する要素をフィルターで除外できます。
let difference = arr1.filter(x => !arr2.includes(x));
これにより、次のような違いが生じます。 [1].
対称差分
arr1 または arr2 のいずれかで排他的に見つかる要素を取得するには、2 つの差分を組み合わせます:
let symDifference = arr1.filter(x => !arr2.includes(x)) .concat(arr2.filter(x => !arr1.includes(x)));
これにより、対称的な差が生じます: [1].
@Joshaven Potter によって強調されているように、これらのメソッドは、柔軟性を高めるために Array.prototype に直接追加できます:
Array.prototype.diff = function(arr2) { return this.filter(x => !arr2.includes(x)); }
その後、配列で直接使用できます:
[1, 2, 3].diff([2, 3]) // [1]
以上が2 つの JavaScript 配列の交差、差分、対称差分を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。