[JavaScript]さまざまなセット操作を説明する

この例では、さまざまなセット操作を説明するJavaScriptプログラムの作成方法を学習します。

例1:和集合演算を設定する

// perform union operation
// contain elements of both sets
function union(a, b) {
    let unionSet = new Set(a);
    for (let i of b) {
        unionSet.add(i);
    }
    return unionSet
}

// two sets of fruits
let setA = new Set(['apple', 'mango', 'orange']);
let setB = new Set(['grapes', 'apple', 'banana']);

let result = union(setA, setB);

console.log(result); 

出力 

Set {"apple", "mango", "orange", "grapes", "banana"}

セット和集合演算は、両方のセットの要素を1つに結合します。

new Set()を使用して、 new Set() unionSetが作成されます。 unionSet変数には、 setAのすべての値が含まれています。次に、 for...ofループを使用して、 setBのすべての要素を反復処理し、 add()メソッドを使用してそれらをunionSetに追加します。

セットに重複する値は含まれていません。したがって、セットに同じ値が含まれている場合、後者の値は破棄されます。


例2:交差操作の設定

// perform intersection operation
// elements of set a that are also in set b
function intersection(setA, setB) {
    let intersectionSet = new Set();

    for (let i of setB) {
        if (setA.has(i)) {
            intersectionSet.add(i);
        }
    }
    return intersectionSet;
}

// two sets of fruits
let setA = new Set(['apple', 'mango', 'orange']);
let setB = new Set(['grapes', 'apple', 'banana']);

let result = intersection(setA, setB);

console.log(result);

出力

Set {"apple"}

共通部分の設定操作は、 setAsetBの両方に存在する要素を表します。

新しいintersectionSetは、 new Set()を使用して作成されます。次に、 for...ofを使用して、 setBを反復処理します。 setAsetBの両方に存在するすべての要素について、それらは交差セットに追加されます。


例3:差集合演算

// perform difference operation
// elements of set a that are not in set b
function difference(setA, setB) {
    let differenceSet = new Set(setA)
    for (let i of setB) {
        differenceSet.delete(i)
    }
    return differenceSet
}

// two sets of fruits
let setA = new Set(['apple', 'mango', 'orange']);
let setB = new Set(['grapes', 'apple', 'banana']);

let result = difference(setA, setB);

console.log(result);

出力

Set {"mango", "orange"}

セット差分演算は、あるセットに存在し、別のセットには存在しない要素を表します。

differenceSetは、セットAのすべての要素が含まれています。次に、 for...ofループを使用して、 setBのすべての要素を反復処理します。セットB内に存在する要素は、セットAにも利用可能である場合は、その要素を使用して削除されdelete()メソッドを。


例4:サブセット操作の設定

// perform subset operation
// true if all elements of set b is in set a
function subset(setA, setB) {
    for (let i of setB) {
        if (!setA.has(i)) {
            return false
        }
    }
    return true
}

// two sets of fruits
let setA = new Set(['apple', 'mango', 'orange']);
let setB = new Set(['apple', 'orange']);

let result = subset(setA, setB);

console.log(result);

出力

true

セットBのすべての要素がセットAにある場合、セットのサブセットの操作はtrueを返します。

for...ofループは、 setBの要素をループするために使用されます。存在する要素がsetBであり、 setAに存在しない場合、 falseが返されます。

Source