Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Apakah perbezaan antara set es6 dan peta

Apakah perbezaan antara set es6 dan peta

青灯夜游
青灯夜游asal
2022-04-15 18:37:417973semak imbas

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.

Apakah perbezaan antara set es6 dan peta

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

Penerangan ringkas:

  • Senario aplikasi utama Set dan Peta ialah penyusunan semula data dan penyimpanan data.
  • Set ialah struktur data yang dipanggil set, dan Map ialah struktur data yang dipanggil kamus.

Perbezaan antara set dan kamus:

  • Mata biasa: set dan kamus boleh menyimpan nilai unik
  • Perbezaan: Set diwakili oleh [ value , value] untuk menyimpan elemen dalam bentuk [key, value], kamus disimpan dalam bentuk [key, value]

Set (Set) :

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.

Kamus (Peta):

ialah struktur pasangan nilai kunci dengan kelajuan carian yang sangat pantas.

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
Cara mengendalikan:

    set(kunci, nilai): Tambahkan elemen baharu pada kamus.
  • get(key): Cari nilai tertentu dengan kunci dan pulangkan.
  • has(key): Tentukan sama ada kunci kekunci wujud dalam kamus.
  • delete(key): Alih keluar data yang sepadan daripada kamus dengan kunci kekunci.
  • clear(): Padamkan semua elemen dalam kamus ini.
Kaedah traversal:

    Keys(): Kembalikan semua nama kunci yang terkandung dalam kamus dalam bentuk iterator.
  • values(): Mengembalikan semua nilai yang terkandung dalam kamus dalam bentuk iterator.
  • entri(): Mengembalikan lelaran semua ahli.
  • forEach(): Lintas semua ahli kamus.
Ringkasan**: **

Set:

  • merujuk kepada struktur "set"

  • [nilai, nilai], nilai kunci dan nama kunci adalah konsisten (atau hanya nilai kunci, tiada nama kunci).

  • Tidak boleh mencari nilai tertentu dengan kunci
Peta:

  • merujuk kepada struktur "kamus"

  • [kunci, nilai], nilai kunci dan nama kunci tidak konsisten


  • Peta boleh menggunakan get() untuk mencari nilai tertentu dengan kunci dan kembalikan

[Cadangan berkaitan:

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!

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:Apakah nama penuh es6?Artikel seterusnya:Apakah nama penuh es6?