Skip to content

Instantly share code, notes, and snippets.

@alpgul
Created April 25, 2025 08:34
Show Gist options
  • Save alpgul/6a3ee39c5029fc7e8c4e1820a16ca895 to your computer and use it in GitHub Desktop.
Save alpgul/6a3ee39c5029fc7e8c4e1820a16ca895 to your computer and use it in GitHub Desktop.
JavaScript'te Gelişmiş Küme İşlemleri: Set Metodları Rehberi

JavaScript'te Gelişmiş Küme İşlemleri: Set Metodları Rehberi

Kısa Açıklama

JavaScript'in yeni Set metodları, matematiksel küme işlemlerini doğrudan dilde uygulamaya olanak sağlayan güçlü bir özelliktir. Bu metodlar, geliştiricilere küme operasyonlarını daha net, performanslı ve okunabilir bir şekilde yapma imkanı sunar.

Set Metodlarının Küme Teorisi Gösterimleri

Küme Teorisi Notasyonları

  1. Kesişim (Intersection): [A ∩ B]

    • Ortak elemanları gösteren küme
  2. Birleşim (Union): [A ∪ B]

    • Her iki kümeden gelen benzersiz elemanlar
  3. Fark (Difference): [A - B]

    • A kümesinde olup B kümesinde olmayanlar
  4. Simetrik Fark (Symmetric Difference): [A △ B]

    • Yalnızca bir kümede bulunan elemanlar
    • [A △ B = (A - B) ∪ (B - A)]
  5. Alt Küme (Subset): [A ⊆ B]

  6. Üst Küme (Superset): [A ⊇ B]

  7. Ayrık Kümeler (Disjoint Sets): [A ∩ B = ∅]

    • Ortak eleman bulunmayan kümeler

Temel Set Metodları

  • intersection(): Ortak elemanları bulma
  • union(): Tüm benzersiz elemanları birleştirme
  • difference(): Kümeler arası fark hesaplama
  • symmetricDifference(): Kesişim dışındaki elemanları bulma
  • isSubsetOf(): Alt küme kontrolü
  • isSupersetOf(): Üst küme kontrolü
  • isDisjointFrom(): Ayrık küme kontrolü

Detaylı Kod Örnekleri

// Örnek Kümeler Oluşturma
const frontendDevs = new Set(['React', 'Vue', 'Angular']);
const backendDevs = new Set(['Node.js', 'Django', 'Spring']);
const fullstackDevs = new Set(['React', 'Node.js', 'Django']);

// 1. Kesişim Örneği
const commonTechnologies = frontendDevs.intersection(fullstackDevs);
console.log('Ortak Teknolojiler:', commonTechnologies);
// Çıktı: Set { 'React' }

// 2. Birleşim Örneği
const allDevTechnologies = frontendDevs.union(backendDevs);
console.log('Tüm Teknolojiler:', allDevTechnologies);
// Çıktı: Set { 'React', 'Vue', 'Angular', 'Node.js', 'Django', 'Spring' }

// 3. Fark Örneği
const uniqueFrontendTechs = frontendDevs.difference(fullstackDevs);
console.log('Sadece Frontend Teknolojileri:', uniqueFrontendTechs);
// Çıktı: Set { 'Vue', 'Angular' }

// 4. Alt Küme Kontrolü
console.log('Fullstack devler frontend dev mi?', 
  fullstackDevs.isSubsetOf(frontendDevs.union(backendDevs))
); 
// Çıktı: true

// 5. Ayrık Küme Kontrolü
console.log('Frontend ve Backend ayrık mı?', 
  frontendDevs.isDisjointFrom(backendDevs)
);
// Çıktı: true

Metodların Pratik Faydaları

  1. Kod Okunabilirliği: Karmaşık küme işlemlerini basit metodlarla yapma
  2. Performans: Yerleşik ve optimize edilmiş metodlar
  3. Matematiksel Kesinlik: Küme teorisi operasyonlarını doğrudan uygulama
  4. Tip Güvenliği: Yerleşik metodlar sayesinde daha güvenli kod
  5. Standartlaşma: Tüm JavaScript ortamlarında aynı şekilde çalışan metodlar

Kullanım Senaryoları

  • Veri analizi
  • Eleman karşılaştırmaları
  • Benzersiz eleman bulma
  • Küme tabanlı filtrelemeler
  • Performans kritik uygulamalar

Referanslar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment