💎 JavaScript Sets: Benzersiz Değerler İçin Koleksiyonlar

💎 JavaScript Sets: Benzersiz Değerler İçin Koleksiyonlar

(Tekrara yer yok, drama hiç yok 😌)

Merhaba güzel insan 💖
Bugün JavaScript evreninde “aynı şeyden iki tane olmasın lütfen” diye kibar ama net bir duruş sergileyen elit bir veri yapısıyla tanışıyoruz: Set.

Set, JavaScript’in:

  • “Ben sadeyim” diyen
  • “Tekrar mı? Yok canım” diye kapıyı kapatan
  • Sessiz ama çok güçlü elemanıdır.

🤯 Bu Yazı Sana Tanıdık Geliyorsa…

Eğer bugüne kadar:

  • “Bu dizide bu eleman vardı sanki ama emin değilim…” diye düşündüysen 🤔
  • filter, indexOf, includes arasında mekik dokuduysan
  • “Tekrar eden değerler yüzünden saçım beyazladı” diyorsan 👵🏻

👉 Hoş geldin. Set tam sana göre.


🧺 Set Nedir? (En Temel Haliyle)

Set, JavaScript’te benzersiz (unique) değerler tutan bir koleksiyondur.

Yani kuralı çok net:

“Aynı değerden iki tane mi? Yok öyle bir şey.”

const mySet = new Set();

Bitti.

  • key yok
  • value karmaşası yok
  • JSON tripleri yok

Sadece değerler ve asalet


🚫 Tekrar Eden Değerler? Set: “Ben almıyorum.”

Şimdi Set’in karakterini görelim:

const numbers = new Set([1, 2, 2, 3, 3, 3]);

console.log(numbers);
// Set(3) {1, 2, 3}

Açıklayalım:

  • 2 ikinci kez geldi → kapıdan döndü
  • 3 üçüncü kez geldi → engellendi

Karşılaştırma yapalım:

  • Array: “Ben hepsini alırım, sorun sende.”
  • Set: “Tekrarlananlar kapıda kalsın.” 🚷

💡 Pratik İpucu:
Bir dizide tekrar eden veriler varsa ve sen bunu tek satırda temizlemek istiyorsan, Set tam aradığın şey.


➕ Set’e Eleman Ekleme (Nazik Ama Net)

const fruits = new Set();

fruits.add("🍎");
fruits.add("🍌");
fruits.add("🍎");

console.log(fruits);
// Set(2) {"🍎", "🍌"}

Burada ne oldu?

  • 🍎 ilk kez geldi → hoş geldin
  • 🍌 geldi → buyur
  • 🍎 tekrar geldi → “Biz daha önce tanıştık.”

Set kırıcı değil ama kararlı 😌

💡 Pratik İpucu:
add() metodu zincirlenebilir:

fruits.add("🍓").add("🍍");


❓ İçinde Var mı Yok mu? (En Hızlı Kontrol)

fruits.has("🍌"); // true
fruits.has("🍓"); // false

Burada güzellik şu:

  • includes yok
  • indexOf yok
  • Performans derdi yok

Sadece:

has → var mı?

Net. Karizmatik. 💅

💡 Ne Zaman Kullanılır?

  • Yetki kontrolü
  • Favoriler listesi
  • Daha önce işlendi mi kontrolü

🗑️ Eleman Silme & Temizlik Operasyonu

fruits.delete("🍌");

Tek tek yollarını ayırmak için.

fruits.clear();

Toplu veda.
Ev süpürüldü, Set tertemiz 🧹

💡 Pratik İpucu:
delete() true/false döner. Yani:

fruits.delete("🍎"); // true
fruits.delete("🍉"); // false


📏 Set’in Boyu (Buraya Dikkat!)

fruits.size;

length yok ❌
Çünkü Set diyor ki:

“Ben array değilim canım.”

💡 Mülakat Uyarısı 🚨
mySet.length yazarsan undefined alırsın.
Bu küçük hata çok kişiyi yakıyor 👀


🔄 Set Üzerinde Dolaşmak (Gayet Sakin)

for (const fruit of fruits) {
  console.log(fruit);
}

Ya da:

fruits.forEach(fruit => console.log(fruit));

Set:

  • Sıralıdır (ekleme sırasına göre)
  • Sessizdir
  • Karmaşa çıkarmaz

🧘‍♀️ Zen modu açık.


🔁 Array ↔ Set Dönüşümü (Efsane Kısım)

Array’den tekrarları temizlemek:

const numbers = [1, 1, 2, 3, 3, 4];

const uniqueNumbers = [...new Set(numbers)];

console.log(uniqueNumbers);
// [1, 2, 3, 4]

Bu satır:

  • Mülakat kurtarır
  • Bug temizler
  • “Bunu nasıl yaptın?” dedirtir 😌

💡 Altın İpucu:
Set’i tekrar array’e çevirmek için:

Array.from(new Set(numbers));


🎯 Ne Zaman Set Kullanmalısın?

✔️ Tekrar eden değerleri istemiyorsan
✔️ Hızlı “var mı yok mu?” kontrolü gerekiyorsa
✔️ Bir diziyi temizlemek istiyorsan
✔️ Kodun daha okunabilir ve sade olsun istiyorsan

Set orada…
Sessizce seni bekliyor 🖤


💌 Son Söz

Set, JavaScript’in:

  • Drama sevmeyen
  • Sadelikten yana
  • “Az ama öz” yaşayan veri yapısıdır.

Eğer kodunda tekrar eden şeyler varsa…
Belki de hayat gibi…
👉 Bir Set’e ihtiyacın vardır 😏

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir