JavaScripte Set ve Map, verileri düzenli bir şekilde depolamak için kullanılan iki tür nesnedir. Bu veri yapılarının her ikisi de aynı nesnenin içinde farklı veri türlerini depolamak için kullanılır. Maps'te veriler bir anahtar-değer çifti olarak depolanırken Set'te veriler benzersiz olan tek bir değer koleksiyonudur. Bu konuda her ne kadar açıklama yapmaya çalışsam da örnekler olmadan anlamak çok güçtür. Aynı zamanda benim de işimi zorlaştırıyor. Temelde ne işe yaradıklarını bilin şimdilik yeter.
Set Metodu
Kod:
const setler = new Set()
console.log(setler)
Böylece yeni bir set ile bir küme oluşturduk. Dilerseniz bu kümenin içini dolduralım.
Kod:
const diller = [
'English',
'Finnish',
'English',
'French',
'Spanish',
'English',
'French',
]
const setDiller = new Set(diller)
console.log(setDiller)
Obje şeklinde konsola böyle yazdırdık. İstersek döngü kullanarak her bir elemanı string olarak da yazdırabiliriz.
Ek olarak Set'in uzunluğunu öğrenmek için değişkenadı.size, yeni veriler eklemek için değişkenadı.add(eklenecek değer), verileri silmek için değişkenadı.delete(veri adı), tüm seti temizlemek için ise değişkenadı.clear()
Map()
Map ise normal anahtar değer tutmada işe yarar. Açıkçası bu konular çok spesifik durumlar için bilseniz iyi olur bakımından bir konu. Şu ana kadar hayatımda hiç map veya Set'e ihtiyacım olmadı ama bu olmayacağı anlamına gelmez. Yazılımda hiçbir şey boşa değildir. Bu hatırlatmayı ve uyarı geçtikten sonra map'in uygulanmasına gelelim.
Kod:
const map = new Map()
console.log(map)
Boş bir map oluşturmak için üsteki örnek yapılır. Bunun içini doldularalım şimdi
Kod:
countries = [
['Finland', 'Helsinki'],
['Sweden', 'Stockholm'],
['Norway', 'Oslo'],
]
const map = new Map(countries)
console.log(map)
console.log(map.size)
Tanımda dediğim gibi bir adet anahtar ve değer verileri tutar map içinde. Anahtarımız ülke adı iken onun değeri başkentidir.
Kod:
const countriesMap = new Map()
countriesMap.set('Finland', 'Helsinki')
countriesMap.set('Sweden', 'Stockholm')
countriesMap.set('Norway', 'Oslo')
console.log(countriesMap)
Bu örnekteki gibi yaparsanız boş bir map'e teker teker değer eklemiş oluruz.
Kod:
console.log(countriesMap.get('Finland'))
get metodu ile istediğimiz değerin anahtarını yazarak değeri alabiliriz. Şimdi büyük bir projede olduğunuzu düşünün yüzlerce anahtar olacaktır. İstediğimiz anahtarın değerini almadan önce o anahtarın var olup olmadığını kontrol edebiliriz. Sonuca göre true/false dönecektir.
Kod:
console.log(countriesMap.has('Finland'))
Dilerseniz tüm anahtar ve değerlerini of döngü kullanarak da yazdırabilirsiniz.

