Map ve Set
Map içinde içecek konuğun altında durur. Set ekstraları toplar ve her ekstrayı bir kez tutar. lida önce tea olur, sonra içecek mint ile değişir. Kümeye mint ve lemon girer. Sayfadaki satır lida / mint / 2 diye okunur.
Sıkı kip sayfası başka yerde kaldı
Orada tanımsız bir ad ReferenceError fırlatmıştı. Burada hiçbir şey fırlamaz. Olmayan anahtarda get sonucu undefined olur.
Aynı anahtar içeceği değiştirir
orders.set("lida", "tea") ilk içeceği koyar. orders.set("lida", "mint") ikinci bir satır açmaz; o anahtarın değeri üzerine yazılır. size anahtarları sayar, set kaç kez çağrıldıysa onu saymaz.
const orders = new Map();
orders.set("lida", "tea");
orders.set("lida", "mint");
console.log(orders.get("lida"));
console.log(orders.size);
Günlükte önce mint, sonra 1 görünür. nima hiç konmadığı için orders.get("nima") undefined olur. orders.has("lida") true olur. Harita get ile okunur. orders.lida ve orders["lida"] sıradan nesne yazımıdır, bu haritayı okumaz.
Anahtar nesnenin kendisidir
Haritanın anahtarı bir nesne olabilir. Saklanan o nesnedir, alanlarından üretilmiş bir metin değil. Aynı alanlara sahip başka bir nesne ayrı anahtardır.
const cup = { guest: "lida" };
const other = { guest: "lida" };
const orders = new Map();
orders.set(cup, "tea");
console.log(orders.get(cup));
console.log(orders.get(other));
console.log(orders.size);
Günlük tea, ardından undefined, ardından 1 yazar. Düz bir nesne iki anahtarı da "[object Object]" metnine çevirir, ikinci yazma birincinin yerine geçer. Map bunu yapmaz.
İkinci mint kalmaz
add("mint") iki kez çağrılsa da tek mint kalır. lemon ikinci değerdir, bu yüzden size 2 olur. has evet ya da hayır der. Değeri döndürmez.
const extras = new Set();
extras.add("mint");
extras.add("mint");
extras.add("lemon");
console.log(extras.size);
console.log(extras.has("lemon"));
Günlük 2, sonra true yazar. new Set(["mint", "mint", "lemon"]) aynı kümeyi kurar: mint kopyası çoktan düşmüştür. Kümede yalnız değerler vardır. Bir konuğun altına içecek konmaz.
delete tek girdiyi çıkarır
Bir şey sildiyse delete true döner. Değer yoksa false döner ve küme olduğu gibi kalır.
const extras = new Set(["mint", "lemon"]);
console.log(extras.delete("lemon"));
console.log(extras.size);
console.log(extras.has("lemon"));
Günlük true, sonra 1, sonra false yazar. mint duruyor. Map üzerinde de delete ve has vardır, ama anahtarla çalışırlar: orders.delete("lida") o konuğu çıkarır.
Sayfanın yazdığı satır
lida içeceği değiştirilir, küme üç sözcükten kurulur, sonra konuk, içecek ve size yazılır.
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
const orders = new Map();
orders.set("lida", "tea");
orders.set("lida", "mint");
const extras = new Set(["mint", "mint", "lemon"]);
const line = document.querySelector("#line");
line.textContent = "lida / " + orders.get("lida") + " / " + extras.size;
</script>
</body>
</html>
Satır lida / mint / 2 diye okunur. tea yazan ilk set görünmez. Yinelenen mint size değerini yükseltmez. ReferenceError sıkı kip satırıydı.
Tezgâhta beş adım
- lida önce tea, sonra mint olsun. get("lida") mint olur, size 1 kalır.
- tea değerini cup altına koy. get(other) undefined olur, size 1 kalır.
- mint, yine mint, sonra lemon ekle. size 2 olur, has("lemon") true olur.
- lemon sil. size 1 olur, has("lemon") false olur.
- Sayfayı oku. Satır lida / mint / 2 olur.
Kolay karışanlar ve akılda kalacaklar
Aynı anahtara ikinci set bir güncellemedir. Aynı ekstranın ikinci add çağrısı yok sayılır.
- Haritayı orders["lida"] ile okuma
- Birbirine benzeyen iki nesne tek anahtar değildir
- has içeceği döndürmez
- new Set kopyaları baştan düşürür
- Satırı ReferenceError diye okuma
Kalsın
- set değiştirir, size yerinde kalır
- nesne anahtarları nesnelerin kendisidir
- küme her değeri bir kez tutar
- delete bir girdiyi çıkarır
- sayfa satırı lida / mint / 2 olur
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek