Langkah pengesanan: 1. Tukar kedua-dua tatasusunan kepada jenis set, sintaks "Set baru(arr)"; 2. Dapatkan persilangan dua set, sintaks "Set baharu([...set1].penapis ( x=>set2.has(x)))", elemen persilangan akan dimasukkan ke dalam koleksi set dan dikembalikan; 3. Tukar koleksi set yang mengandungi elemen persilangan kepada jenis tatasusunan, sintaksnya ialah "Array.from( rse)" ;4. Tentukan sama ada tatasusunan persilangan ialah tatasusunan kosong. Jika ya, tiada item yang sama. Jika tidak, terdapat item yang sama.
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
Mengesan sama ada dua tatasusunan mempunyai item yang sama adalah untuk mengesan sama ada dua tatasusunan mempunyai persilangan.
Kesan idea:
Dapatkan persilangan dua tatasusunan
Tentukan sama ada persimpangan itu kosong Jika ia kosong, tiada item yang sama Jika ia tidak kosong, terdapat item yang sama.
Langkah pelaksanaan:
1. Dapatkan persilangan dua tatasusunan
Dalam es6, anda boleh menggunakan kaedah has() bagi objek yang ditetapkan bersama dengan penapis() tatasusunan untuk mencari persilangan dua tatasusunan.
Set ialah struktur data baharu yang disediakan oleh ES6, yang serupa dengan tatasusunan, tetapi tidak mempunyai nilai pendua. Menggunakan ciri ini, kita boleh menukar tatasusunan kepada jenis Set untuk penyahduplikasian, dan kemudian menggunakan kaedah Array.from untuk menukarnya kepada tatasusunan semula.
Kaedah Set has() menunjukkan sama ada objek Set mengandungi nilai yang ditentukan. Mengembalikan benar jika nilai yang dinyatakan wujud, palsu sebaliknya.
Nota: Jika anda ingin menggunakan kaedah has(), anda perlu menukar tatasusunan kepada jenis koleksi yang ditetapkan dahulu
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);
Ya Dapat dilihat pada masa ini, elemen persilangan dimasukkan ke dalam koleksi set dan dikembalikan
2. Tukar koleksi set yang mengandungi elemen persilangan kepada jenis tatasusunan
Dalam es6, Anda boleh menggunakan kaedah Array.from untuk menukar koleksi kepada jenis tatasusunan
Kaedah Array.from digunakan untuk menukar dua jenis daripada objek ke dalam tatasusunan sebenar: objek seperti tatasusunan dan objek boleh lelar (termasuk Set dan Peta struktur data baharu ES6).
let intersectionSet = Array.from(new Set([...newA].filter(x => newB.has(x)))); console.log(intersectionSet);
3 Tentukan sama ada tatasusunan persilangan ialah tatasusunan kosong
Jika ia adalah array kosong, tiada item yang sama
Jika ia bukan array kosong, terdapat item yang sama
if(intersectionSet==[]){ console.log("没有相同项"); }else{ console.log("有相同项"); }
Contoh kod lengkap:
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("有相同项"); }
[Cadangan berkaitan: tutorial video javascript, Pengaturcaraan video]
Atas ialah kandungan terperinci Bagaimana untuk mengesan sama ada dua tatasusunan mempunyai item yang sama dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!