2つの配列間の交差を実行するJavaScriptプログラム

例1:セットを使用して交差を実行する

// program to perform intersection between two arrays using Set
// intersection contains the elements of array1 that are also in array2

function performIntersection(arr1, arr2) {

    // converting into Set
    const setA = new Set(arr1);
    const setB = new Set(arr2);

    let intersectionResult = [];

    for (let i of setB) {
    
        if (setA.has(i)) {
            intersectionResult.push(i);
        }
        
    }
    
    return intersectionResult;

}

const array1 = [1, 2, 3, 5, 9];
const array2 = [1, 3, 5, 8];

const result = performIntersection(array1, array2);
console.log(result);

出力

[1, 3, 5]

上記のプログラムでは、交差が実行されます array1 そして array2

  • 配列要素はに変換されます Set を使用する要素 new Set() コンストラクタ。
  • ザ・ for...of ループは2番目を繰り返すために使用されます Set 要素。
  • ザ・ has() メソッドは、要素が最初にあるかどうかを確認するために使用されます Set
  • 要素が最初に存在する場合 Set、その要素がに追加されます 交差結果 を使用した配列 push() 方法。

例2:filter()メソッドを使用して交差を実行する

// program to perform intersection between two arrays

function performIntersection(arr1, arr2) {

    const intersectionResult = arr1.filter(x => arr2.indexOf(x) !== -1);
 
    return intersectionResult;

}

const array1 = [1, 2, 3, 5, 9];
const array2 = [1, 3, 5, 8];

const result = performIntersection(array1, array2);
console.log(result);

出力

[1, 3, 5]

上記のプログラムでは、2つの配列間で交差が実行されます。 filter() 方法。 filterメソッドは配列を反復処理し、指定された条件に合格した配列要素を返します。

  • 最初の配列の各要素は、を使用して2番目の配列と比較されます。 indexOf() 方法。
  • ザ・ arr2.indexOf(x) メソッド検索 arr2 の最初の出現位置を返します arr1。 値が見つからない場合は、 -1
  • 両方の配列にあるすべての要素は、によって返されます filter() 方法。

注意: また、を使用することができます includes() 配列要素が両方の配列にあるかどうかを確認するメソッド。

const intersectionResult = arr1.filter(x => arr2.includes(x))



Hope this helps!

Source link