Program JavaScript Untuk Melakukan Persimpangan Antara Dua Array

Contoh 1: Lakukan Persimpangan Menggunakan Set

// 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);

Keluaran

[1, 3, 5]

Dalam program di atas, sebuah persimpangan dilakukan antara array1 dan array2.

  • Elemen array diubah menjadi Set elemen menggunakan new Set() konstruktor.
  • Itu for...of loop digunakan untuk mengulangi yang kedua Set elemen.
  • Itu has() metode ini digunakan untuk memeriksa apakah elemen ada di yang pertama Set.
  • Jika elemen ada di yang pertama Set, elemen itu ditambahkan ke hasil persimpangan array menggunakan push() metode.

Contoh 2: Lakukan Persimpangan Menggunakan Metode 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);

Keluaran

[1, 3, 5]

Dalam program di atas, persimpangan dilakukan antara dua array menggunakan: filter() metode. Metode filter mengulangi array dan mengembalikan elemen array yang melewati kondisi yang diberikan.

  • Setiap elemen larik pertama dibandingkan dengan larik kedua menggunakan using indexOf() metode.
  • Itu arr2.indexOf(x) pencarian metode arr2 dan mengembalikan posisi kemunculan pertama dari arr1. Jika nilainya tidak dapat ditemukan, ia akan kembali -1.
  • Semua elemen yang ada di kedua array dikembalikan oleh filter() metode.

catatan: Anda juga bisa menggunakan includes() metode untuk memeriksa apakah elemen array ada di kedua array.

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