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

arr1 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'in set2'nin bir alt kümesi olup olmadığını belirten bir boolean
  • isSuperset: set1'in set2'nin bir üst kümesi olup olmadığını belirten bir boolean
  • isEqual: set1 ve set2'nin tamamen aynı elemanlara sahip olup olmadığını belirten bir boolean

Kopya kağıdı

A kümesi, A'nın her elemanı aynı zamanda B'nin de bir elemanıysa B kümesinin bir alt kümesidir. Aksine, B, A'nın tüm elemanlarını içeriyorsa A'nın bir üst kümesidir. İki küme, tam olarak aynı elemanları içeriyorlarsa eşittir.

setA'nın setB'nin bir alt kümesi olup olmadığını kontrol edin:

function isSubset(setA, setB) {
  return [...setA].every(element => setB.has(element));
}

setA'nın setB'nin bir üst kümesi olup olmadığını kontrol edin:

function isSuperset(setA, setB) {
  return isSubset(setB, setA);
}

İki kümenin eşit olup olmadığını kontrol edin:

function areEqual(setA, setB) {
  return setA.size === setB.size && isSubset(setA, setB);
}

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
    };
}
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