Set 2.has(x))))" untuk mendapatkan set perbezaan; 3. Tentukan perbezaan Sama ada tatasusunan set adalah tatasusunan kosong, jika ya, kedua-dua tatasusunan adalah sama, jika tidak, mereka tidak sama."/> Set 2.has(x))))" untuk mendapatkan set perbezaan; 3. Tentukan perbezaan Sama ada tatasusunan set adalah tatasusunan kosong, jika ya, kedua-dua tatasusunan adalah sama, jika tidak, mereka tidak sama.">

Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

青灯夜游
青灯夜游asal
2022-10-18 19:54:552899semak imbas

Langkah: 1. Gunakan atribut panjang untuk mendapatkan panjang dua tatasusunan, dan tentukan sama ada kedua-dua panjang itu adalah "tatasusunan 1. panjang == tatasusunan 2." Jika panjang adalah sama, gunakan " Set baru (tatasusunan)" menukar kedua-dua tatasusunan kepada jenis set dan menggunakan "Array.from(new Set([...Set 1].filter(x=>Set 2.has( x))))" untuk mendapatkan set Perbezaan; 3. Tentukan sama ada tatasusunan set perbezaan ialah tatasusunan kosong. Jika ya, kedua-dua tatasusunan adalah sama, jika tidak ia tidak sama.

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.

Untuk menentukan sama ada dua tatasusunan adalah sama, anda boleh menukar idea untuk menentukan sama ada panjang dua tatasusunan adalah sama dan sama ada set perbezaan (mengandungi elemen berbeza) kosong.

Idea pelaksanaan:

  • Semak sama ada panjang dua tatasusunan adalah sama

  • Jika panjangnya adalah sama, Kemudian tentukan sama ada set perbezaan dua tatasusunan kosong

    • Jika set perbezaan kosong, kedua-dua tatasusunan adalah sama (kerana tiada unsur yang berbeza)

    • Jika set perbezaan tidak kosong, kedua-dua tatasusunan tidak sama (kerana terdapat elemen yang berbeza)

Penjelasan: Jika tatasusunan mempunyai nilai pendua, Panjang tatasusunan adalah berbeza, tetapi tiada unsur yang berbeza (set perbezaan adalah kosong)

var a=[1, 2, 3];
var b=[1,2,3,1,3];

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Tetapi dua tatasusunan sedemikian tidak boleh sama, jadi tatasusunan perlu dinilai dahulu Adakah panjangnya sama?

Langkah pelaksanaan:

Langkah 1. Gunakan atribut panjang untuk mendapatkan panjang dua tatasusunan masing-masing, dan tentukan sama ada kedua-dua panjang adalah sama.

Setiap tatasusunan mempunyai atribut panjang, yang boleh digunakan untuk mengembalikan panjang maksimum tatasusunan, iaitu nilainya bersamaan dengan nilai subskrip maksimum tambah 1.

var a=[1, 2, 3];
var b=[1, 2, 3];
console.log(a);
console.log(b);

if(a.length==b.length){
	console.log("两数组的长度相等");
}else{
	console.log("两数组的长度不相等");
}

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Langkah 2: Jika kedua-dua panjang adalah sama, gunakan kaedah has(), filter(), dan from() untuk mendapatkan perbezaan antara dua tatasusunan

has() ialah kaedah set objek, jadi jika anda ingin menggunakan kaedah has(), anda perlu menukar tatasusunan untuk menetapkan jenis koleksi dahulu.

newA = new Set(a);
newB = new Set(b);

Kaedah has() bagi objek yang ditetapkan bekerjasama dengan penapis() tatasusunan untuk mencari persilangan dua tatasusunan, tetapi elemen persilangan akan dimasukkan dalam koleksi set dan dikembalikan, menjadikan sukar untuk melakukan perbandingan nol; Oleh itu, anda perlu menggunakan kaedah Array.from untuk menukar koleksi kepada jenis tatasusunan.

let differenceABSet = Array.from(new Set([...newA].filter(x => !newB.has(x))));

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Penjelasan:

  • Kaedah Array.from digunakan untuk menukar dua jenis objek kepada tatasusunan sebenar: serupa kepada tatasusunan Objek (objek seperti tatasusunan) dan objek boleh dilalui (boleh lelar) (termasuk Set dan Peta struktur data baharu ES6).

Langkah 3: Tentukan sama ada tatasusunan set perbezaan ialah tatasusunan kosong

  • Jika tatasusunan set perbezaan ialah tatasusunan kosong, maka dua tatasusunan adalah sama

  • Jika tatasusunan perbezaan bukan tatasusunan kosong, kedua-dua tatasusunan itu tidak sama

if(differenceABSet.length==0){
	console.log("两数组相等");
}else{
	console.log("两数组不相等");
}

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Kod pelaksanaan lengkap (dirangkumkan sebagai fungsi)

function f(a, b) {
	newA = new Set(a);
	newB = new Set(b);
	if (a.length == b.length) {
		let differenceABSet = Array.from(new Set([...newA].filter(x => !newB.has(x))));
		console.log("两数组差集:");
		console.log(differenceABSet);
		if (differenceABSet.length == 0) {
			console.log("两数组相等");
		} else {
			console.log("两数组不相等");
		}

	} else {
		console.log("两数组不相等");
	}
}

Contoh 1: Semak sama ada dua fungsi berikut adalah sama

var a = [1, 2, 3];
var b = [1, 2, 3,3];
console.log(a);
console.log(b);
f(a, b);

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Contoh 2: Semak sama ada dua fungsi berikut adalah sama

var a = [1, 2, 3];
var b = [1, 2, 4];
console.log(a);
console.log(b);
f(a, b);

Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6

Penjelasan: Elemen dalam set perbezaan adalah daripada tatasusunan yang dibandingkan (Tidak. Diambil daripada tatasusunan a).

[Cadangan berkaitan: tutorial video javascript, Video pengaturcaraan]

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada dua tatasusunan adalah sama dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Adakah nodejs menyokong es6?Artikel seterusnya:Adakah nodejs menyokong es6?