- Firefox 127以降、主要ブラウザエンジンの大半で新しい
Set メソッドが使えるようになり、Polyfill なしでもどこでもこれらのメソッドを利用可能
- 重複排除、比較、積集合、差集合、部分集合などに最適化された方法を提供するため、自前で実装する必要がなくなる
- 大規模データでは Array と比べて性能面で利点がある(順序が保証されない点には注意)
- 新しい
Set メソッド: intersection(), union(), difference(), symmetricDifference(), isSubsetOf(), isSupersetOf(), isDisjointFrom() は、該当するかどうかを示すブール値を返す
JavaScript の Set とは?
Set は Array に似ているが、各値は一度しか格納できない
Set は一意なコレクションを作るための組み込みの方法を提供してくれるので便利
- Array と比べて、
Set で要素の有無を確認するほうが一般的に高速
2つの集合の和集合
union メソッドを使うと、「どちらか一方、または両方」にある要素を確認できる
- 重複排除や比較のためのユーザー定義実装は不要
集合の積集合
intersection メソッドを使うと、2つの集合で重なる要素を確認できる
- 「両方の集合にのみ」ある要素を強調表示するのに使える
集合の対称差
symmetricDifference メソッドは、どちらか一方の集合にはあるが「両方」にはない要素を確認できるようにする
symmetricDifference は intersection と逆の論理演算を行う
集合の差集合
difference メソッドを使うと、ある集合にはあるが別の集合にはない要素を確認できる
- 別のリストには現れないリスト項目を強調表示するために、
difference で作った集合を使える
部分集合、上位集合、互いに素
isSubsetOf() と isSupersetOf() メソッドは新しい集合を返すのではなく、特定の状態や論理チェックを表すブール値を返す
isDisjointFrom() メソッドを使うと、2つの集合に共通要素がないか確認できる
まとめ
Set メソッドは興味深く、理解しやすい概念だと思う
- これらのメソッドを実例で別の形で使う方法について、ぜひ教えてほしい
- 次のプロジェクトで
Set メソッドをうまく活用できることを願う
1件のコメント
より「集合」らしい関数が追加されたんですね