From 0fde51ffd89876ba830d2a941563af1a0a59dca5 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Tue, 8 Oct 2024 00:57:12 +0900 Subject: [PATCH] =?UTF-8?q?2024/07/26=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=96=B0=E8=A6=8F=E7=BF=BB=E8=A8=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global_objects/set/issupersetof/index.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 files/ja/web/javascript/reference/global_objects/set/issupersetof/index.md diff --git a/files/ja/web/javascript/reference/global_objects/set/issupersetof/index.md b/files/ja/web/javascript/reference/global_objects/set/issupersetof/index.md new file mode 100644 index 00000000000000..cf00f0962faec9 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/set/issupersetof/index.md @@ -0,0 +1,94 @@ +--- +title: Set.prototype.isSupersetOf() +slug: Web/JavaScript/Reference/Global_Objects/Set/isSupersetOf +l10n: + sourceCommit: 8421c0cd94fa5aa237c833ac6d24885edbc7d721 +--- + +{{JSRef}} + +**`isSupersetOf()`** は {{jsxref("Set")}} インスタンスのメソッドで、集合を取り、与えられた集合のすべての要素がこの Set にあることを示す論理値を返します。 + +## 構文 + +```js-nolint +isSupersetOf(other) +``` + +### 引数 + +- `other` + - : {{jsxref("Set")}} オブジェクト、または [Set 風](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set#set_風オブジェクト)オブジェクトです。 + +### 返値 + +`other` の集合にあるあるすべての要素がこの Set にもあれば `true`、そうでなければ `false` です。 + +## 解説 + +数学的な記法では、上位集合は次のように定義されます。 + + + + ABxB,xAA\supseteq B \Leftrightarrow \forall x\in B,\,x\in A + + + +ベン図を使うとこうなります。 + +![2 つの円からなるベン図。B は A に完全に含まれるため、A は B の上位集合です。](diagram.svg) + +> [!NOTE] +> 上位集合の関係は、真の上位集合ではありません。つまり、`this` と `other` の中の要素が同じである場合、`isSupersetOf()` は `true` を返します。 + +`isSupersetOf()` は、[Set 風](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set#set-like_objects)オブジェクトを `other` 引数として受け入れます。{{jsxref("Operators/this", "this")}} は、ユーザーコードを呼び出すことなく、`this` オブジェクトに格納されているデータに直接アクセスするため、実際の {{jsxref("Set")}} インスタンスであることが要求されます。その後、その動作は `this` と `other` のサイズに依存します。 + +- `this` の要素数が `other.size` より少ない場合は、直接 `false` を返します。 +- そうでなければ、`other` の `keys()` メソッドを呼び出して走査し、`other` の要素が `this` に存在しない場合は `false` を返します(そして、`return()` メソッドを呼び出して `keys()` イテレータを終了します)。 そうでなければ、`true` を返します。 + +## 例 + +### isSupersetOf() の使用 + +偶数(20 未満)の集合は、4 の倍数(20 未満)の集合の上位集合です。 + +```js +const evens = new Set([2, 4, 6, 8, 10, 12, 14, 16, 18]); +const fours = new Set([4, 8, 12, 16]); +console.log(evens.isSupersetOf(fours)); // true +``` + +すべての奇数(20 未満)の集合は、素数(20 未満)の集合の上位集合ではありません。なぜなら、2 は素数ですが、奇数ではないからです。 + +```js +const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]); +const odds = new Set([3, 5, 7, 9, 11, 13, 15, 17, 19]); +console.log(odds.isSupersetOf(primes)); // false +``` + +同値集合は互いに上位集合です。 + +```js +const set1 = new Set([1, 2, 3]); +const set2 = new Set([1, 2, 3]); +console.log(set1.isSupersetOf(set2)); // true +console.log(set2.isSupersetOf(set1)); // true +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [`Set.prototype.isSupersetOf` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#new-set-methods) +- {{jsxref("Set.prototype.difference()")}} +- {{jsxref("Set.prototype.intersection()")}} +- {{jsxref("Set.prototype.isDisjointFrom()")}} +- {{jsxref("Set.prototype.isSubsetOf()")}} +- {{jsxref("Set.prototype.symmetricDifference()")}} +- {{jsxref("Set.prototype.union()")}}