この例では、さまざまなセット操作を説明する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"}
共通部分の設定操作は、 setAとsetBの両方に存在する要素を表します。
新しいintersectionSet
は、 new Set()
を使用して作成されます。次に、 for...of
を使用して、 setBを反復処理します。 setAとsetBの両方に存在するすべての要素について、それらは交差セットに追加されます。
例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
が返されます。