Yayınlandı

JavaScript'te Hash Map'ler: Yüksek Performanslı Anahtar-Değer Çiftleri

Yazarlar

Neden Hashmap?

Hepimizin bildiği gibi, başka bir programlama dili Hashtable adında bir şeye sahip. Bu, O(1) sabit zamanlı arama özelliği nedeniyle harika olan, anahtar-değer çiftlerini depolayan bir veri yapısıdır. Veri depolamak için kullanabileceğimiz avantajlı bir veri yapısıdır. JavaScript'te Hashtable gibi yerleşik bir veri yapımız yok. Ancak anahtar-değer çiftlerini depolamak için bir nesne kullanabiliriz. JavaScript'te buna Map denir.

Map Nedir?

Map, her öğenin Anahtar, Değer çifti olarak depolandığı bir öğe koleksiyonudur. Bir Map'in anahtarları ve değerleri herhangi bir değer olabilir (hem nesneler hem de ilkel değerler). Bir Map nesnesi, öğelerini ekleme sırasına göre yineleyerek - bir for...of döngüsü her yineleme için bir [anahtar, değer] dizisi döndürür.

Bir Map, anahtarları herhangi bir veri türünde olabilen anahtar-değer çiftlerini tutar. Bir Map, Map'in boyutunu temsil eden bir özelliğe sahiptir. Bir Map, anahtarların orijinal ekleme sırasını hatırlar.

Map Metodları ve Özelliği

MetotAçıklama
new Map()Yeni bir Map nesnesi oluşturur
set()Bir Map'te bir anahtar için değeri ayarlar
get()Bir anahtar için değeri döndürür
has()Bir Map'te bir anahtarın olup olmadığını gösteren bir Boole değeri döndürür
delete()Bir Map'ten bir anahtarı kaldırır
clear()Bir Map'ten tüm anahtarları kaldırır
values()Bir Map'teki değerlerin bir yineleyici nesnesini döndürür
keys()Bir Map'teki anahtarların bir yineleyici nesnesini döndürür
entries()Bir Map'teki anahtar-değer çiftlerinin bir yineleyici nesnesini döndürür
forEach()Bir Map'teki her anahtar-değer çifti için bir kez sağlanan bir işlevi yürütür
ÖzellikAçıklama
sizeBir Map'teki anahtar/değer çiftlerinin sayısını döndürür

Map Örneği

const map = new Map()
map.set('name', 'John')
map.set('age', 30)
map.set('isMarried', true)
map.set('address', { city: 'New York', state: 'NY' })
map.set('hobbies', ['reading', 'writing', 'coding'])

console.log(map.get('name')) // John
console.log(map.get('age')) // 30
console.log(map.get('isMarried')) // true
console.log(map.get('address')) // {city: 'New York', state: 'NY'}
console.log(map.get('hobbies')) // ['reading', 'writing', 'coding']

console.log(map.size) // 5

Map Yinelemesi

const map = new Map()
map.set('name', 'John')
map.set('age', 30)
map.set('isMarried', true)
map.set('address', { city: 'New York', state: 'NY' })
map.set('hobbies', ['reading', 'writing', 'coding'])

// Anahtarları yinele
for (const key of map.keys()) {
  console.log(key)
}

// Değerleri yinele
for (const value of map.values()) {
  console.log(value)
}

// Anahtar-değer çiftlerini yinele
for (const [key, value] of map.entries()) {
  console.log(key, value)
}

// Anahtar-değer çiftlerini yinele
map.forEach((value, key) => {
  console.log(key, value)
})

Map vs. Nesne

MapNesne
Map, bir Nesne gibi, anahtarlı veri öğelerinin bir koleksiyonudur. Ancak temel fark, Map'in herhangi bir türde anahtara izin vermesidir.Nesne anahtarları yalnızca bir dize veya sembol olmalıdır.
Map yinelebilir ve kolayca döngü içinde kullanılabilir.Nesne yinelebilir değildir ve kolayca döngü içinde kullanılamaz.
Map'in yerleşik bir forEach metodu vardır, bu nedenle bir diziye dönüştürmeye gerek yoktur.Nesnenin yerleşik bir forEach metodu yoktur.
Map'in bir boyut özelliği vardır, bu nedenle öğe sayısını kolayca alabiliriz.Nesnenin bir boyut özelliği yoktur.
Map, anahtar olarak nesneleri kullanabilir.Nesne, anahtar olarak nesneleri kullanamaz.
Map genellikle Nesne'den daha hızlıdır.Nesne genellikle Map'ten daha yavaştır.

Sonuç

Bu makalede, JavaScript'teki Map hakkında bilgi edindik. Map metotları ve özellikleri hakkında bilgi edindik. Ayrıca Map ve Nesne arasındaki farkı da öğrendik. Umarım bu makaleyi beğenmişsinizdir. Herhangi bir sorunuz varsa, lütfen aşağıya bir yorum bırakın. Okuduğunuz için teşekkür ederim.

Orijinal olarak yayınlandı: https://blog.imam.dev/blog/javascript-hashmap

Referanslar

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

https://www.freecodecamp.org/news/what-is-a-javascript-map-what-are-the-differences-between-map-and-object-in-javascript/

https://www.geeksforgeeks.org/map-vs-object-javascript/