CARVIEW |
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Set.prototype.intersection()
Baseline
2024
Newly available
Since June 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
intersection()
は Set
インスタンスのメソッドで、集合を受け取り、この Set と指定された集合の両方にある要素の入った新しい Set を返します。
構文
intersection(other)
引数
返値
新しい Set
オブジェクトで、この Set と other
の集合の両方にある要素が入ったものです。
解説
数学的な記法では、交差 (intersection) は次のように定義されます。
ベン図を使うとこうなります。
が重なっているベン図。AとBの交点が重なっている部分です。" width="300" height="200" loading="lazy">
intersection()
は、Set 風オブジェクトを other
引数として受け入れます。this
は、ユーザーコードを呼び出すことなく、this
オブジェクトに格納されているデータに直接アクセスするため、実際の Set
インスタンスであることが要求されます。その後、その動作は this
と other
のサイズに依存します。
this
の中の要素がother.size
よりも多かった場合、other
をkeys()
メソッドを呼び出すことで走査し、そこから生成されたすべての要素のうちthis
にも存在する要素で新しい Set を構築します。- そうでなければ、
this
の要素を走査し、this
の要素e
のうち、other.has(e)
が真値を返すすべてを含む新しい Set を構築します。
この実装により、intersection()
の実行効率は、this
と other
のうち小さい方のセットのサイズにほぼ依存します(Set が指数時間でアクセスできると仮定した場合)。返される Set の要素の順序は、this
と other
のうち小さい方のセットの順序と同じです。
例
>intersection() の使用
次の例では、奇数(10 未満)と完全平方(10 未満)の集合の共通部分を計算します。結果は、完全平方である奇数の集合となります。
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.intersection(squares)); // Set(2) { 1, 9 }
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-set.prototype.intersection> |
ブラウザーの互換性
Loading…