Set.prototype.isSupersetOf()

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.

Phương thức isSupersetOf() của các instance Set nhận một set và trả về một boolean cho biết liệu tất cả các phần tử của set đã cho có nằm trong set này hay không.

Cú pháp

js
isSupersetOf(other)

Tham số

other

Một đối tượng Set, hoặc đối tượng set-like.

Giá trị trả về

true nếu tất cả các phần tử trong other cũng có trong set này, và false nếu ngược lại.

Mô tả

Trong ký hiệu toán học, tập cha (superset) được định nghĩa như sau:

ABxB,xAA\supseteq B \Leftrightarrow \forall x\in B,\,x\in A

Và bằng biểu đồ Venn:

A Venn diagram with two circles. A is a superset of B because B is completely contained in A.

Note: Quan hệ tập cha không phải là tập cha thực sự, có nghĩa là isSupersetOf() trả về true nếu thisother chứa cùng các phần tử.

isSupersetOf() chấp nhận các đối tượng set-like làm tham số other. Nó yêu cầu this phải là một instance Set thực sự, vì nó trực tiếp lấy dữ liệu cơ bản được lưu trữ trong this mà không gọi bất kỳ code người dùng nào. Sau đó, hành vi của nó phụ thuộc vào kích thước của thisother:

  • Nếu có ít phần tử trong this hơn other.size, thì nó trả về false trực tiếp.
  • Ngược lại, nó duyệt other bằng cách gọi phương thức keys() của nó, và nếu bất kỳ phần tử nào trong other không có trong this, nó trả về false (và đóng iterator keys() bằng cách gọi phương thức return() của nó). Ngược lại, nó trả về true.

Ví dụ

Sử dụng isSupersetOf()

Tập số chẵn (<20) là tập cha của các bội số của 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

Tập tất cả số lẻ (<20) không phải tập cha của số nguyên tố (<20), vì 2 là số nguyên tố nhưng không phải số lẻ:

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

Các tập tương đương là tập cha của nhau:

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

Đặc tả kỹ thuật

Thông số kỹ thuật
ECMAScript® 2027 Language Specification
# sec-set.prototype.issupersetof

Tương thích trình duyệt

Xem thêm