💎 JavaScript Set Metodları: Kümeleri Yönetme Rehberi

JavaScript Rehberi

Merhaba sevgili kod kahramanım! 🦸‍♀️🦸‍♂️
Bugün sana JavaScript’in o gizli süper gücünü, yani Set objesini anlatacağım. Set, Array gibi görünebilir ama tek ve eşsiz elemanlar konusunda bir şampiyon! 🏆

Bu yazıda hem temel bilgiler, hem pratik ipuçları, hem de yaratıcı örnekler bulacaksın. Hadi başlayalım! 💖


1️⃣ Set Nedir? (Ve Neden Aşık Olmamalısın 😏)

Düşünsene: bir koleksiyonun var ama her elemandan sadece bir tane olsun istiyorsun.
İşte Set tam olarak bu işi yapıyor. Array gibi görünebilir ama tekrar eden değerleri saklamıyor.

const meyveler = new Set();
meyveler.add("elma");
meyveler.add("armut");
meyveler.add("elma"); // 😂 Bu eklenmez, Set tekrarı sevmez
console.log(meyveler); // Set(2) { 'elma', 'armut' }

Açıklama:

  • new Set() ile boş bir küme oluşturduk.
  • add() ile değer ekledik.
  • Set, tekrarı asla kabul etmez. Yani “elma”yı ikinci kez eklemeye çalışsak da sadece bir tane kalır.

💡 İpucu: Eğer tekrar eden verileri temizlemek istiyorsan Array’i Set’e çevirip tekrar Array’e dönüştürebilirsin. Bu JS dünyasında mini bir süper güç 😎.


2️⃣ Temel Set Metodları: Set’in Süper Silahları 🛡️

Set’i yönetmek için kullanacağın başlıca metodlar şunlar:


1. add(value) – Eleman Ekleme Büyüsü ✨

const meyveler = new Set();
meyveler.add("elma");
meyveler.add("armut");
meyveler.add("muz");

console.log(meyveler); // Set(3) { 'elma', 'armut', 'muz' }

Açıklama:

  • add() metodu Set’e yeni bir değer ekler.
  • Eğer aynı değeri tekrar eklersen, Set onu reddeder.
  • Düşünsene, Set bir çeşit sadık dost: “Tekrar edenleri sevmem” 😏

💡 Pratik ipucu: Eğer kullanıcıdan gelen bir listeyi temizlemek istiyorsan, direkt new Set(liste) ile anında tekrarları yok edebilirsin.


2. delete(value) – Artık Git! ✋

meyveler.delete("armut");
console.log(meyveler); // Set(2) { 'elma', 'muz' }

Açıklama:

  • delete() metodu, belirttiğin değeri Set’ten siler.
  • Eğer değer Set’te yoksa, hiçbir şey yapmaz.

💡 İpucu: delete() metodunun dönüş değeri boolean’tır. Yani başarılı oldu mu olmadı mı görebilirsin:

console.log(meyveler.delete("elma")); // true
console.log(meyveler.delete("armut")); // false


3. has(value) – Dedektif Modu 🕵️

console.log(meyveler.has("elma")); // true
console.log(meyveler.has("armut")); // false

Açıklama:

  • has() metodu Set’te belirttiğin değerin olup olmadığını kontrol eder.
  • Tıpkı gizli bir ajan gibi: “Bu değer burada mı?” 😎

💡 Pratik ipucu: Kullanıcının bir değeri tekrar eklemesini engellemek için has() + add() kombinasyonu süper işe yarar:

const friends = new Set();
function addFriend(name) {
    if (!friends.has(name)) {
        friends.add(name);
        console.log(`${name} eklendi! 🎉`);
    } else {
        console.log(`${name} zaten var, tekrar ekleyemezsin! 😏`);
    }
}
addFriend("Ahmet");
addFriend("Ahmet");


4. clear() – Reset Butonu 🔥

meyveler.clear();
console.log(meyveler); // Set(0) {}

Açıklama:

  • clear() metodu Set’i tamamen boşaltır.
  • Tüm değerler uçup gider.
  • Adeta “artık eski defterleri kapatma zamanı” 😂

5. size – Set’in Boyutu 📏

const sayilar = new Set([1,2,3,3,4]);
console.log(sayilar.size); // 4

Açıklama:

  • size özelliği Set’in kaç elemanı olduğunu gösterir.
  • Array’de length ne ise, Set’te size odur.

💡 İpucu: Hızlı tekrar kontrolü için size kullanabilirsin. Örneğin, kullanıcı 5’ten fazla ekleme yapmasın diye sınır koyabilirsin. 😉


3️⃣ Set’i Daha Akıllıca Kullanmak: Sihirli Taktikler ✨

Array’den Set’e Dönüşüm: Tekrarları Temizle!

const nums = [1,2,2,3,3,3];
const uniqueNums = new Set(nums);
console.log(uniqueNums); // Set(3) { 1, 2, 3 }

Açıklama:

  • Array’deki tekrar eden değerler otomatik olarak Set ile temizlendi.

💡 Pratik ipucu: Eğer veri tabanından gelen karmaşık listelerde tekrarlar varsa, Set hayat kurtarır!

Set’ten Array’e Dönüşüm: Kodunu Esnek Tut!

const uniqueArray = [...uniqueNums];
console.log(uniqueArray); // [1, 2, 3]

Açıklama:

  • Spread operator (...) ile Set’i tekrar Array’e çevirebilirsin.
  • Böylece Array metodlarını kullanmaya devam edebilirsin.

4️⃣ Set ile Mini Oyun: Arkadaş Listesi 🥳

Düşünsene bir uygulama yapıyorsun, kullanıcı arkadaş ekliyor ama aynı kişiyi iki kere eklemek istemiyorsun.
Set burada devreye giriyor:

const friends = new Set();

friends.add("Ahmet");
friends.add("Ayşe");
friends.add("Ahmet"); // tekrar eklenmez

for (let friend of friends) {
  console.log(friend); // Ahmet, Ayşe
}

💖 Set, ilişkiler gibi: sadık ve tekrarı kabul etmez 😏


5️⃣ Bonus: Set Döngüleri ve İpuçları 🌀

Set üzerinde döngü yapmak çok kolay:

friends.forEach(friend => console.log(`Arkadaş: ${friend}`));

Açıklama:

  • forEach veya for...of ile Set’in elemanlarını rahatça dönebilirsin.
  • Map’ten farkı: Set sadece değerleri saklar, key-value çifti yoktur.

💡 İpucu: Set ile intersection, difference gibi “küme matematiği” de yapabilirsin:

const setA = new Set([1,2,3,4]);
const setB = new Set([3,4,5,6]);

// Kesişim
const intersection = new Set([...setA].filter(x => setB.has(x)));
console.log(intersection); // Set(2) {3, 4}

// Fark
const difference = new Set([...setA].filter(x => !setB.has(x)));
console.log(difference); // Set(2) {1, 2}


🎉 Özet

  • Set = Tekrar etmeyen koleksiyon 💎
  • add() = Eleman ekle
  • delete() = Elemanı sil
  • has() = Var mı diye kontrol et
  • clear() = Tümünü sil
  • size = Set’in boyutu

💡 Bonus ipuçları:

  • Array → Set = tekrarları temizle
  • Set → Array = Array metodlarını kullan
  • Intersection & Difference = Küme matematiği yap

Bir yanıt yazın

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