EcmaScript Map
Map nesnesi, key-value şeklinde haritalandırarak verileri saklar. Şimdi Map nesnesinin en çok işimize yarayacak metotlarına örnek üzerinden biraz daha bakalım…
let kitaplar = new Map();kitaplar.set('974647234', 'Mobil Oyun Tasarımı ve Programlama');
kitaplar.set('972315712', 'Bootstrap 4 ve Responsive Tasarım Teknikleri');
kitaplar.set('976124784', 'İleri Seviye HTML5 Programlama');console.log( kitaplar.size ); // 3
console.log( kitaplar.get('972315712') ); // "Bootstrap 4 ve Responsive Tasarım Teknikleri"console.log( kitaplar.has('972315712') ); // true
console.log( kitaplar.has('972315712xx') ); // falsekitaplar.delete('972315712');
console.log( kitaplar.has('972315712') ); // falsefor (let key of kitaplar.keys()) {
console.log(key); // "974647234", "976124784"
}for (let value of kitaplar.values()) {
console.log(value); // "Mobil Oyun Tasarımı ve Programlama", "İleri Seviye HTML5 Programlama"
}for (let [key, value] of kitaplar) {
console.log(`${key} - ${value}`);
// "974647234 - Mobil Oyun Tasarımı ve Programlama"
// "976124784 - İleri Seviye HTML5 Programlama"
}
console.log( kitaplar.size ); // 2kitaplar.clear();
console.log( kitaplar.size ); // 0
Sırasıyla inceleyelim…
İlk olarak kitaplar isminde bir Map’i new Map(); ile oluşturduk. İçi boş olan bu Map’e .set(key, value); metodu ile toplamda 3 eleman ekledik (key olarak ISBN numaraları, value olarak da kitap isimleri) ve .size özelliği ile kaç elemanı olduğunu konsolda yazdırdık. Sonrasında da .has(key) metodu ile key ismini verdiğimiz bir elemanının var olup olmadığını sorgulattık, sonuç olarak da true verdi. Listede olmayan bir key’i sorguladığımızda da false verdi. Ardından var olan bir elemanı .delete(key) ile sildik. Sonrasında da aynı key ile sorgulattığımızda eleman silindiği için false değerini döndü. .keys() ile Map’in tüm key’lerini, .values() ile de tüm değerleri for of döngüsünü kullanarak tek tek yazdırdık. Bir başka for of döngüsünde de key ve value değerlerini sırası ile alıp template olarak birleştirerek yazdırdık. Yine toplam eleman sayısına baktığımızda 2 değerini verdi. Kitaplar Map’ini tamamen temizlemek için de .clear() metodundan faydalandık.