Alt Kümeler ve Üst Kümeler
Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 40 / 65.
A kümesi, A'nın her elemanı B'nin de elemanıysa B kümesinin alt kümesidir. Buna karşılık, A'nın tüm elemanlarını içeriyorsa B, A'nın üst kümesidir.
İki küme, tam olarak aynı elemanları içeriyorsa eşittir. Örneğin, birkaç test oluşturalım:
const setA = new Set([1, 2, 3]);
const setB = new Set([1, 2, 3, 4, 5]);
const setC = new Set([1, 2, 3]);
const setD = new Set([6, 7, 8]);setA'nın setB'nin alt kümesi olup olmadığını kontrol eden fonksiyon:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}setA kümesinin setB kümesinin üst kümesi olup olmadığını kontrol eden fonksiyon:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}İki kümenin eşit olup olmadığını kontrol eden işlev:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Alt küme ilişkisini test etme:
// A, B'nin alt kümesi mi?
isSubset(setA, setB) // true
// B, A'nın alt kümesi mi?
isSubset(setB, setA) // false
// D, B'nin alt kümesi mi?
isSubset(setD, setB) // falseÜst küme ilişkisini test etme:
// B, A'nın üst kümesi mi?
isSuperset(setB, setA) // true
// A, B'nin üst kümesi mi?
isSuperset(setA, setB) // falseEşitliği test etme:
// A, C'ye eşit mi?
areEqual(setA, setC) // true
// A, B'ye eşit mi?
areEqual(setA, setB) // false
// A, D'ye eşit mi?
areEqual(setA, setD) // falseGörev
KolayParametre olarak iki dizi alan analyzeSetRelations adlı bir işlev oluştur: arr1 ve arr2. İşlev, dizileri kümelere dönüştürmeli ve aşağıdaki özelliklere sahip bir nesne döndürmelidir:
isSubset:set1kümesininset2kümesinin alt kümesi olup olmadığını belirten bir boole değeriisSuperset:set1kümesininset2kümesinin üst kümesi olup olmadığını belirten bir boole değeriisEqual:set1veset2kümelerinin tamamen aynı elemanlara sahip olup olmadığını belirten bir boole değeri
Kendin dene
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// Küme ilişkilerini kontrol etmek için .every() ve .has() kullanın
let isSubset = false; // TODO: set1'in her elemanının set2'de bulunup bulunmadığını kontrol edin
let isSuperset = false; // TODO: set2'nin her elemanının set1'de bulunup bulunmadığını kontrol edin
let isEqual = false; // TODO: iki kümenin aynı boyutta olup olmadığını ve isSubset değerinin true olup olmadığını kontrol edin
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Dizeleri Derinlemesine İnceleme
Dize TemelleriDizeler Üzerinde YinelemeŞablon DizeleriDize MetotlarıTekrar - Dize Dokuyucu4JSON Bölüm 2
JSON Üzerinde Döngü Kurmaİç İçe JSONJSON İsteğe Bağlı ZincirlemeYüzeysel ve Derin KopyaTekrar - Bisikletçi DükkânıTekrar - Güneş Sistemi7Kütüphane Yönetim Sistemi
Projeye Genel BakışKitap Ekleme10Festival Sistemini Yönet
Proje Genel BakışıFilmler ve Mekanlar Ekle2Çok Boyutlu Diziler
2 Boyutlu Dizilerin Temelleri2 Boyutlu Dizi Elemanlarına Erişim2 Boyutlu Dizilerle İç İçe DöngülerTekrar - 2 Boyutlu DizilerMatris Toplama ve ÇıkarmaDüzensiz Diziler3 Boyutlu Diziler ve ÖtesiYaygın 2 Boyutlu Dizi KalıplarıTekrar - Diziler Hakkında Her Şey5Kümeler Bölüm 1
Küme Nedir?Kümeler Üzerinde YinelemeBir Eleman EklemeBir Elemanı KaldırmaBir Elemanın Var Olup Olmadığını Kontrol EtmeBoyut ve Boş Olma DurumuKopyalama ve TemizlemeÖzet - Kümelerin Temelleri8Dizilerle İlgili İlginç Konular
Dizi DestructuringDizilerde Spread SözdizimiSeyrek DizilerTekrar - Diziler Atölyesi3JSON Bölüm 1
JSON nedir?Anahtarın Var Olup Olmadığını Kontrol EtmeNesne MetotlarıSpread Operatörü Bölüm 1Spread Operatörü Bölüm 2Anahtarları KaldırmaTekrar - JSON Anahtarlarını İşleme6Kümeler Bölüm 2
Matematik - Kümelerin BirleşimiMatematik - Kümelerin KesişimiMatematik - Kümelerin FarkıMatematik - Simetrik FarkAlt Kümeler ve Üst KümelerTekrar - Arkadaşları GruplandırmaKendi başına pratik yap: Online JavaScript derleyicisi