Materi
Map menyimpan pasangan kunci dan nilai, seperti objek, dengan tiga perbedaan: kuncinya boleh bertipe apa saja (angka, objek, bukan hanya teks), urutan pasangannya selalu sesuai urutan dimasukkan, dan jumlahnya langsung dibaca dari size. Method-nya set(kunci, nilai), get(kunci), has(kunci), dan delete(kunci). Map dipakai untuk kamus yang terus ditambah dan dibaca, misalnya penghitung kunjungan per pengguna.
Set menyimpan kumpulan nilai tanpa duplikat. new Set(array) membuang nilai kembar sambil mempertahankan urutan kemunculan pertama, dan [...set] mengubahnya kembali menjadi array. has memeriksa keanggotaan tanpa menelusuri seluruh isi seperti includes pada array. Keduanya bisa dibaca dengan for...of dan dituangkan dengan spread.
const hadir = ["Ani", "Budi", "Ani", "Cici", "Budi"];
const unik = [...new Set(hadir)]; // ["Ani", "Budi", "Cici"]
const skor = new Map();
skor.set("Ani", 80).set("Budi", 75);
skor.get("Ani"); // 80
skor.has("Cici"); // false
skor.size; // 2
[...skor]; // [["Ani", 80], ["Budi", 75]]
Object.fromEntries(skor); // { Ani: 80, Budi: 75 }Map dan Set tidak ikut ditulis oleh JSON.stringify: keduanya menjadi {} karena isinya tidak disimpan sebagai property. Sebelum dikirim atau disimpan, Map diubah dengan Object.fromEntries(map) atau [...map], dan Set dengan [...set].