JavaScript の新しい Set メソッド
(developer.mozilla.org)- 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件のコメント
より「集合」らしい関数が追加されたんですね