Program JavaScript Untuk Melakukan Persimpangan Antara Dua Array

Dalam contoh ini, Anda akan belajar menulis program JavaScript yang akan melakukan perpotongan antara dua array.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman JavaScript berikut:

  • Filter Array Javascript ()
  • JavaScript Array push ()
  • Set JavaScript dan WeakSet

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, persimpangan dilakukan antara array1dan array2.

  • Elemen array diubah menjadi Setelemen menggunakan new Set()konstruktor.
  • The for… ofLoop digunakan untuk iterate atas kedua Setelemen.
  • The has()metode yang digunakan untuk memeriksa apakah elemen tersebut dalam pertama Set.
  • Jika elemen ada di yang pertama Set, elemen itu ditambahkan ke array intersectionResult 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 melakukan iterasi pada larik dan mengembalikan elemen larik yang melewati kondisi yang diberikan.

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

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

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

Artikel yang menarik...