CodeBlanks Logo Icon CodeBlanks

Map vs Object

JavaScript kursu · İleri seviye · Ders 40/100

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

  1. 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.

  2. 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);
  3. 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.

  4. 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

İleri seviye bölümündeki tüm dersler