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.
-
Kesişim (Intersection): [A ∩ B]
- Ortak elemanları gösteren küme
-
Birleşim (Union): [A ∪ B]
- Her iki kümeden gelen benzersiz elemanlar
-
Fark (Difference): [A - B]
- A kümesinde olup B kümesinde olmayanlar
-
Simetrik Fark (Symmetric Difference): [A △ B]
- Yalnızca bir kümede bulunan elemanlar
- [A △ B = (A - B) ∪ (B - A)]
-
Alt Küme (Subset): [A ⊆ B]
-
Üst Küme (Superset): [A ⊇ B]
-
Ayrık Kümeler (Disjoint Sets): [A ∩ B = ∅]
- Ortak eleman bulunmayan kümeler
intersection()
: Ortak elemanları bulmaunion()
: Tüm benzersiz elemanları birleştirmedifference()
: Kümeler arası fark hesaplamasymmetricDifference()
: Kesişim dışındaki elemanları bulmaisSubsetOf()
: Alt küme kontrolüisSupersetOf()
: Üst küme kontrolüisDisjointFrom()
: Ayrık küme kontrolü
// Ö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
- Kod Okunabilirliği: Karmaşık küme işlemlerini basit metodlarla yapma
- Performans: Yerleşik ve optimize edilmiş metodlar
- Matematiksel Kesinlik: Küme teorisi operasyonlarını doğrudan uygulama
- Tip Güvenliği: Yerleşik metodlar sayesinde daha güvenli kod
- Standartlaşma: Tüm JavaScript ortamlarında aynı şekilde çalışan metodlar
- Veri analizi
- Eleman karşılaştırmaları
- Benzersiz eleman bulma
- Küme tabanlı filtrelemeler
- Performans kritik uygulamalar
- TC39 Set Metodları Teklifi
- MDN Web Docs
- Teklif Yazarları:
- Michał Wadas
- Sathya Gunasekaran
- Kevin Gibbons