ホームページ > ウェブフロントエンド > jsチュートリアル > 2 つの JavaScript 配列の交差、差分、対称差分を効率的に見つけるにはどうすればよいですか?

2 つの JavaScript 配列の交差、差分、対称差分を効率的に見つけるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-29 03:39:10
オリジナル
829 人が閲覧しました

How Can I Efficiently Find the Intersection, Difference, and Symmetric Difference of Two JavaScript Arrays?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート