Set veri yapısı
Set ile benzersiz değerler tutan bir koleksiyon öğrenirsin.
Set nedir?
Set, yalnızca benzersiz değerleri tutan bir koleksiyondur. new Set() ile oluşturulur. Aynı değeri ikinci kez eklersen Set bunu yok sayar; yinelenen oluşmaz.
Set, değerleri eklenme sırasına göre saklar. add ile değer ekler, has ile varlığını sorgular, delete ile siler ve size ile kaç değer olduğunu okursun.
Set ile tekrarları temizleme
Bir diziden tekrarları kaldırmanın en kısa yolu new Set(array) yapmaktır. Set, dizideki her değeri bir kez tutar. Sonuçları tekrar dizi istersen Array.from(set) ya da [...set] yazarsın.
Bu yöntem sayı, dize ve nesne referansları için çalışır; ancak nesneler değere göre değil referansa göre karşılaştırılır. İki ayrı {} nesnesi Set için farklı kabul edilir.
Uygulama Tekrarları Set ile temizle
tags adında bir dizi oluştur ve içinde yinelenen değerler olsun (örneğin "js" iki kez). Bir Set ile yinelenenleri kaldır; sonucu uniqueTags adında yeni bir diziye dönüştür. uniqueTags.length'i console.log ile yazdır.
Örnek çözümü göster
const tags = ["js", "html", "js", "css"];
const uniqueTags = Array.from(new Set(tags));
console.log(uniqueTags.length);
Kendini test et
-
Bir Set'e aynı değeri iki kez eklersen ne olur?
- Hata fırlatılır
- İkinci değer eskisinin üzerine yazar
- İkinci ekleme yok sayılır, değer bir kez kalır
- Set'in boyutu iki katına çıkar
Cevabı göster
İkinci ekleme yok sayılır, değer bir kez kalır — Doğru. Set yalnızca benzersiz değer tutar; ikinci ekleme yok sayılır.
-
Tekrarları Set ile kaldır
const numbers = [1, 2, 2, 3, 3, 3]; const unique = Array.from(new ____(numbers)); console.log(unique);Cevabı göster
const numbers = [1, 2, 2, 3, 3, 3]; const unique = Array.from(new Set(numbers)); console.log(unique); -
Aşağıdaki kod ne yazdırır?
const s = new Set(); s.add(1); s.add(1); console.log(s.size);- 1
- 2
- 0
- undefined
Cevabı göster
1 — Doğru. İkinci add(1) yok sayılır; size 1 kalır.
-
Set metotlarını eşleştir
- add(val)
- Yeni değer ekler
- has(val)
- Değer var mı?
- delete(val)
- Değeri siler
- size
- Kaç değer var?