Dalam contoh ini, anda akan belajar menulis program JavaScript yang akan melakukan persimpangan antara dua tatasusunan.
Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan JavaScript berikut:
- Penapis Array Javascript ()
- Tekan Array JavaScript ()
- Set JavaScript dan WeakSet
Contoh 1: Lakukan Persilangan 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);
Pengeluaran
(1, 3, 5)
Dalam program di atas, persimpangan dilakukan antara array1
dan array2
.
- Unsur array ditukar menjadi
Set
elemen menggunakannew Set()
konstruktor. - The
for… of
gelung digunakan untuk melelar atas keduaSet
unsur-unsur. - The
has()
kaedah yang digunakan untuk memeriksa jika elemen itu dalam pertamaSet
. - Sekiranya elemen ada pada elemen pertama
Set
, elemen tersebut akan ditambahkan ke array intersectionResult menggunakanpush()
kaedah.
Contoh 2: Lakukan Persilangan Menggunakan Kaedah penapis ()
// 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);
Pengeluaran
(1, 3, 5)
Dalam program di atas, persimpangan dilakukan antara dua tatasusunan menggunakan filter()
kaedah. Kaedah penapis berulang melalui array dan mengembalikan elemen array yang melepasi keadaan yang diberikan.
- Setiap elemen array pertama dibandingkan dengan array kedua menggunakan
indexOf()
kaedah. - Yang
arr2.indexOf(x)
kaedah carian arr2 dan pulangan kedudukan kejadian pertama arr1. Sekiranya nilainya tidak dapat dijumpai, ia mengembalikan -1 . - Semua elemen yang terdapat dalam kedua susunan dikembalikan dengan
filter()
kaedah.
Catatan: Anda juga dapat menggunakan includes()
kaedah untuk memeriksa apakah elemen array ada di kedua array.
const intersectionResult = arr1.filter(x => arr2.includes(x))