Perbezaan: 1. Set merujuk kepada struktur "set", manakala Map merujuk kepada struktur "kamus"; 2. Set menyimpan elemen dalam bentuk "[nilai, nilai]", manakala Peta menyimpan elemen dalam bentuk "[nilai, nilai]" Ia disimpan dalam bentuk "[kunci, nilai]"; 3. Peta boleh menggunakan get() untuk mencari nilai tertentu dengan kunci dan mengembalikannya, tetapi set tidak boleh.
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
Penerangan ringkas:
Perbezaan antara set dan kamus:
ES6 baharu Struktur data baharu, serupa dengan tatasusunan, tetapi ahlinya unik dan tidak tertib, tanpa nilai pendua.
Set sendiri ialah pembina yang digunakan untuk menjana struktur data Set.
Tetapkan objek membolehkan anda menyimpan nilai unik dari sebarang jenis, sama ada nilai primitif atau rujukan objek.
const s = new Set() [1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x)) for (let i of s) { console.log(i) // 1 2 3 4 } // 去重数组的重复对象 let arr = [1, 2, 3, 2, 1, 1] [... new Set(arr)] // [1, 2, 3]
Nota: Apabila menambahkan nilai pada Set, tiada penukaran jenis berlaku, jadi `5` dan `"5"` ialah dua nilai yang berbeza. Set secara dalaman menentukan sama ada dua nilai berbeza Algoritma yang digunakan dipanggil "Kesamaan nilai-sifar", yang serupa dengan operator **kesamaan tepat** (`===`). *`NaN` adalah sama dengan dirinya sendiri, manakala pengendali kesamaan tepat menganggap `NaN` tidak sama dengan dirinya sendiri. **
let set = new Set(); let a = NaN; let b = NaN; set.add(a); set.add(b); set // Set {NaN} let set1 = new Set() set1.add(5) set1.add('5') console.log([...set1]) // [5, "5"]
Kaedah operasi:
tambah(nilai): Baharu, bersamaan dengan tolak dalam tatasusunan.
delete(value): Padamkan nilai dalam koleksi jika wujud.
has(value): Tentukan sama ada nilai wujud dalam set.
clear(): Kosongkan koleksi.
Kaedah traversal: Kaedah traversal (urutan traversal ialah susunan sisipan)
keys(): Mengembalikan iterator yang mengandungi semua kunci dalam koleksi .
values(): Mengembalikan iterator yang mengandungi semua nilai dalam koleksi.
entri(): Mengembalikan lelaran nilai kunci yang mengandungi semua elemen dalam objek Set.
forEach(callbackFn, thisArg): Digunakan untuk melakukan operasi panggil balikFn pada ahli koleksi Jika parameter thisArg disediakan, ini dalam panggilan balik akan menjadi parameter ini nilai.
const m = new Map() const o = {p: 'haha'} m.set(o, 'content') m.get(o) // content m.has(o) // true m.delete(o) // true m.has(o) // false
tutorial video javascript, bahagian hadapan web]
Atas ialah kandungan terperinci Apakah perbezaan antara set es6 dan peta. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!