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ümesinin her elemanı aynı zamanda B kümesinin de bir elemanıysa, A kümesi B kümesinin bir alt kümesidir. Aksine, B kümesi A'nın tüm elemanlarını içeriyorsa, B kümesi A'nın bir üst kümesidir.
İki küme, eğer tam olarak aynı elemanları içeriyorlarsa eşittir. Örneğin, bazı testler 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 bir alt kümesi olup olmadığını kontrol eden fonksiyon:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}setA'nın setB'nin bir ü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 fonksiyon:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}Alt küme ilişkisi test ediliyor:
// 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şkisi test ediliyor:
// 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
Kolayarr1 ve arr2 olmak üzere iki diziyi parametre olarak alan analyzeSetRelations adında bir fonksiyon oluşturun. Fonksiyon, dizileri kümelere (sets) dönüştürmeli ve aşağıdaki özelliklere sahip bir nesne döndürmelidir:
isSubset:set1'inset2'nin bir alt kümesi olup olmadığını belirten bir booleanisSuperset:set1'inset2'nin bir üst kümesi olup olmadığını belirten bir booleanisEqual:set1veset2'nin tamamen aynı elemanlara sahip olup olmadığını belirten bir boolean
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 olup olmadığını kontrol edin
let isSuperset = false; // TODO: set2'nin her elemanının set1'de olup olmadığını kontrol edin
let isEqual = false; // TODO: her iki kümenin aynı boyutta olduğunu ve isSubset'in true olduğunu 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
1Derinlemesine Stringler
String TemelleriString Üzerinde YinelemeTemplate LiteralsString MetotlarıÖzet - String Weaver4JSON Bölüm 2
JSON Üzerinde Yinelemeİç İçe Geçmiş JSONJSON Optional ChainingSığ ve Derin KopyalamaÖzet - Bisiklet MağazasıÖzet - Güneş Sistemi7Kütüphane Yönetim Sistemi
Projeye Genel BakışKitap Ekleme10Festival Sistemi Yönetimi
Projeye Genel BakışFilm ve Mekan Ekle2Çok Boyutlu Diziler
2D Dizi Temelleri2D Dizi Elemanlarına Erişme2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaDüzensiz Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey5Kümeler Bölüm 1
Küme Nedir?Kümeler Üzerinde YinelemeEleman EklemeEleman SilmeEleman Varlığını Kontrol EtmeBoyut ve Boş Olma DurumuKopyalama ve TemizlemeÖzet - Kümelerin Temelleri8Diziler: İlginç Konular
Dizi Yapı SökümüDizilerde Spread SözdizimiSeyrek DizilerÖzet - Diziler Workshop3JSON Bölüm 1
JSON Nedir?Anahtarın Varlığını Kontrol EtmeNesne MetotlarıSpread Operatörü Bölüm 1Spread Operatörü Bölüm 2Anahtarları KaldırmaÖzet - JSON Anahtarlarını Yönetme6Kü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ümelerÖzet - Arkadaşları Gruplandırma