Bagaimana untuk mengesan sama ada dua tatasusunan mempunyai item yang sama dalam es6

青灯夜游
Lepaskan: 2022-10-21 14:42:12
asal
3657 orang telah melayarinya

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.

Bagaimana untuk mengesan sama ada dua tatasusunan mempunyai item yang sama dalam es6

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);
Salin selepas log masuk

Bagaimana untuk mengesan sama ada dua tatasusunan mempunyai item yang sama dalam es6

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);
Salin selepas log masuk

Bagaimana untuk mengesan sama ada dua tatasusunan mempunyai item yang sama dalam es6

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("有相同项");
}
Salin selepas log masuk

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("有相同项");
}
Salin selepas log masuk

Bagaimana untuk mengesan sama ada dua tatasusunan mempunyai item yang sama dalam es6

[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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan