javascript set同士が等しいかを判定する
- 作成日 2022.10.28
- javascript
- javascript

javascriptで、set同士が等しいかを判定するサンプルコードを掲載してます。「===」などの演算子では比較できないため全ての値が対象のsetに存在するかチェックして判定します。
環境
- OS windows11 pro 64bit
- ブラウザ chrome 107.0.5304.63
等しいかを判定する
set同士が等しいかを判定するには、
1. 同じサイズであるか判定
2. setを配列化して「every」で全ての値が含まれているか判定
することで可能です。
function check(s1, s2) {
// サイズを比較
if (s1.size !== s2.size) return false;
// 配列化してeveryで全ての値が存在するのかを判定
return [...s1].every(function(v){return s2.has(v);});
}
const set1 = new Set(['a', 'b', 'c']);
const set2 = new Set(['a', 'b', 'c']);
const set3 = new Set(['c', 'b', 'a']);
const set4 = new Set(['c', 'b', 'a', 'd']);
// 判定できない
console.log( set1 === set2); // false
console.log(check(set1, set2)); // true
console.log(check(set1, set3)); // true
console.log(check(set1, set4)); // false
「every」は配列にある値が条件を全て満たすときのみ「true」が返ります。
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
console.log( arr.every( function(v){return v > 0} ) );
// true
console.log( arr.every( function(v){return v > 2} ) );
// false
-
前の記事
C# コンソールにテキストや実行結果を表示する 2022.10.28
-
次の記事
CentOs9 Elasticsearchをインストールする 2022.10.28
コメントを書く