Menu
Coddy logo textTech

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 öğesi aynı zamanda B’nin de bir öğesiyse B kümesinin alt kümesidir. Buna karşılık B, A’nın tüm öğelerini içeriyorsa A’nın üst kümesidir.

İki küme, tam olarak aynı öğeleri içeriyorsa 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 kümesinin setB kümesinin alt kümesi olup olmadığını kontrol eden işlev:

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 işlev:

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) // false

Eş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) // false
challenge icon

Görev

Kolay

analyzeSetRelations adlı, parametre olarak iki dizi alan 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: set1 kümesinin set2 kümesinin alt kümesi olup olmadığını belirten bir boolean
  • isSuperset: set1 kümesinin set2 kümesinin üst kümesi olup olmadığını belirten bir boolean
  • isEqual: set1 ve set2 kümelerinin tamamen aynı elementlere sahip olup olmadığını belirten bir boolean

Kendin dene

function analyzeSetRelations(arr1, arr2) {
    let set1 = new Set(arr1);
    let set2 = new Set(arr2);

    // .every() ve .has() kullanarak küme ilişkilerini kontrol et
    let isSubset = false;   // TODO: set1'in her elemanının set2'de var olup olmadığını kontrol et
    let isSuperset = false; // TODO: set2'nin her elemanının set1'de var olup olmadığını kontrol et
    let isEqual = false;    // TODO: her iki kümenin aynı boyuta sahip olup olmadığını ve isSubset'in true olup olmadığını kontrol et

    return {
        isSubset: isSubset,
        isSuperset: isSuperset,
        isEqual: isEqual
    };
}
quiz iconKendini test et

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

Kendi başına pratik yap: Online JavaScript derleyicisi