Map vs Object
Map ve Object arasındaki farkları ve hangisini ne zaman kullanacağını öğrenirsin.
Map ve Object farkı
Object anahtarları yalnızca dize veya sembol olabilir; Map ise her türden anahtar kabul eder. Object'in Object.keys(obj).length ile saydığın boyutu, Map'te doğrudan map.size özelliğidir.
Map, anahtarları eklenme sırasıyla saklar; Object de sırayı büyük ölçüde korur ama sayı gibi dize anahtarlarında sıra farklı olabilir. Sık eklenen/silinen anahtar-değerlerde Map genellikle daha hızlıdır.
Ne zaman Object kullanmalısın?
Yine de Object her zaman geçerli bir seçimdir. Sabit bir veri yapın varsa (kullanıcı nesnesi: name, email, age), Object daha doğal ve kısa yazılır. Object'leri dize biçiminde kaydetmek veya ağ üzerinden göndermek için standart araçlar doğrudan çalışır.
Map ise dizeye çevrilirken önce bir nesneye dönüştürmen gerekir. Yapı sık değişmiyorsa ve anahtarlar dizeyse Object çoğu zaman daha basittir.
Uygulama Tercihler için Map kullan
prefs adında bir Map oluştur. "theme" anahtarına "dark", "lang" anahtarına "tr" değerlerini ekle. prefs.has("theme") sonucunu console.log ile yazdır. Sonra prefs.delete("lang") ile "lang" girişini sil.
Örnek çözümü göster
const prefs = new Map();
prefs.set("theme", "dark");
prefs.set("lang", "tr");
console.log(prefs.has("theme"));
prefs.delete("lang");
Kendini test et
-
Hangi durumda Object yerine Map tercih edilir?
- Sabit bir yapı ve bilinen özellikler gerektiğinde
- Veriyi dize olarak kaydetmek istediğinde
- Yalnızca dize anahtarların yeterli olduğu basit durumlarda
- Sık eklenen ve silinen, farklı türden anahtarların olduğunda
Cevabı göster
Sık eklenen ve silinen, farklı türden anahtarların olduğunda — Doğru. Sık değişen ve farklı türden anahtarlar için Map uygundur.
-
Map'in boyutunu oku
const m = new Map(); m.set("a", 1); m.set("b", 2); console.log(m.____);Cevabı göster
const m = new Map(); m.set("a", 1); m.set("b", 2); console.log(m.size); -
Map ile ilgili hangisi yanlıştır?
- Anahtarlar nesne ve fonksiyon da olabilir
- Boyutu öğrenmek için length özelliği kullanılır
- Ekleme sırasını korur
- for...of ile [key, value] çiftleri gezilebilir
Cevabı göster
Boyutu öğrenmek için length özelliği kullanılır — Doğru. length özelliği Map'te yoktur; size kullanılır.
-
Map ve Object özelliklerini eşleştir
- Map.size
- Doğrudan boyut
- Object.keys(obj).length
- Boyutu elle sayar
- Map anahtarı
- Her türden olabilir
- Object anahtarı
- Dize veya sembol