ホームページ > ウェブフロントエンド > フロントエンドQ&A > es6 で 2 つの配列に同じ項目があるかどうかを検出する方法

es6 で 2 つの配列に同じ項目があるかどうかを検出する方法

青灯夜游
リリース: 2022-10-21 14:42:12
オリジナル
3700 人が閲覧しました

検出手順: 1. 両方の配列をセット型に変換します (構文 "new Set(arr)"; 2. 2 つのセットの共通部分を取得します (構文 "new Set([...set1].filter ( x=>set2.has(x)))"、交差要素はセット コレクションに含まれて返されます。 3. 交差要素を含むセット コレクションを配列型に変換します。構文は "Array.from( rse)" ;4. 交差配列が空の配列かどうかを判断します。空の配列であれば、同一の項目はありません。そうでない場合は、同一の項目があります。

es6 で 2 つの配列に同じ項目があるかどうかを検出する方法

このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。

2 つの配列に同じ項目があるかどうかを検出することは、2 つの配列が交差するかどうかを検出することになります。

#検出アイデア:

  • 2 つの配列の共通部分を取得します

  • # #交差点が空かどうかを判断します。空の場合は、同一の項目はありません。空でない場合は、同一の項目があります。

実装手順:

1. 2 つの配列の共通部分を取得します

es6 では、set オブジェクトの has() メソッドを配列の filter() と組み合わせて使用​​して、2 つの配列の共通部分を見つけることができます。

  • Set は ES6 によって提供される新しいデータ構造で、配列に似ていますが、重複する値はありません。この機能を使用すると、重複排除のために配列を Set 型に変換し、Array.from メソッドを使用して再度配列に変換できます。

  • Set has() メソッドは、Set オブジェクトに指定された値が含まれているかどうかを示します。指定された値が存在する場合は true を返し、存在しない場合は false を返します。

注: has() メソッドを使用する場合は、最初に配列をセット コレクション型に変換する必要があります

let a=[1, 2, 3];
let b=[3, 5, 2];
newA = new Set(a);
newB = new Set(b); 
let intersectionSet = new Set([...newA].filter(x => newB.has(x)));
console.log(intersectionSet);
ログイン後にコピー

es6 で 2 つの配列に同じ項目があるかどうかを検出する方法

ご覧のとおり、このとき、交差要素は集合コレクションに含まれており、戻り値

2.交差要素を含む集合コレクションを配列型に変換します

es6 では、Array.from メソッドを使用して、コレクションを配列型に変換します。

  • #Array.from メソッドは、2 種類のオブジェクトを実際の配列に変換するために使用されます。 : 配列のようなオブジェクトと配列のようなオブジェクト 反復可能 (反復可能) オブジェクト (ES6 の新しいデータ構造 Set および Map を含む)。

    #
    let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x))));
    console.log(intersectionSet);
    ログイン後にコピー

es6 で 2 つの配列に同じ項目があるかどうかを検出する方法

#3. 交差配列が空の配列かどうかを判断します

    If 空の配列の場合、同一の項目はありません
  • 空の配列でない場合、同一の項目はありません
  • if(intersectionSet==[]){
    	console.log("没有相同项");
    }else{
    	console.log("有相同项");
    }
    ログイン後にコピー
完全なコード例:

let a=[1, 2, 3];
let b=[3, 5, 2];
console.log(a);
console.log(b);
newA = new Set(a);
newB = new Set(b); 
let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x))));
console.log("两个数组的交集:");
console.log(intersectionSet);
if(intersectionSet==[]){
	console.log("没有相同项");
}else{
	console.log("有相同项");
}
ログイン後にコピー

es6 で 2 つの配列に同じ項目があるかどうかを検出する方法[関連する推奨事項:

JavaScript ビデオ チュートリアル

プログラミング ビデオ]

以上がes6 で 2 つの配列に同じ項目があるかどうかを検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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