← 返回首页
Set.prototype.intersection() - JavaScript | MDN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Set.prototype.intersection()

Baseline 2024
最近利用可能

June 2024以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。

intersection()Set インスタンスのメソッドで、集合を受け取り、この Set と指定された集合の両方にある要素の入った新しい Set を返します。

目次

構文

js
intersection(other)

引数

other

Set オブジェクト、または Set 風オブジェクトです。

返値

新しい Set オブジェクトで、この Set と other の集合の両方にある要素が入ったものです。

解説

数学的な記法では、交差 (intersection) は次のように定義されます。

A∩B={x∊A∣x∊B}A\cap B = \{x\in A\mid x\in B\}

ベン図を使うとこうなります。

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 未満)の集合の共通部分を計算します。結果は、完全平方である奇数の集合となります。

js
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 }

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-set.prototype.intersection

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報