Set.prototype.isDisjointFrom()
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 isDisjointFrom() của các instance Set nhận một set và trả về một boolean cho biết set này có không có phần tử chung nào với set đã cho hay không.
Cú pháp
isDisjointFrom(other)
Tham số
Giá trị trả về
true nếu set này không có phần tử chung nào với other, và false nếu ngược lại.
Mô tả
Hai set là rời nhau (disjoint) nếu chúng không có phần tử chung. Trong ký hiệu toán học:
Và bằng biểu đồ Venn:
isDisjointFrom() 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 this và other:
- Nếu có nhiều phần tử trong
thishơnother.size, thì nó duyệtotherbằng cách gọi phương thứckeys()của nó, và nếu bất kỳ phần tử nào trongothercó trongthis, nó trả vềfalse(và đóng iteratorkeys()bằng cách gọi phương thứcreturn()của nó). Ngược lại, nó trả vềtrue. - Ngược lại, nó duyệt các phần tử trong
this, và trả vềfalsenếu bất kỳ phần tửenào trongthiskhiếnother.has(e)trả về giá trị truthy. Ngược lại, nó trả vềtrue.
Do cách triển khai này, hiệu quả của isDisjointFrom() phần lớn phụ thuộc vào kích thước của set nhỏ hơn giữa this và other (giả sử các set có thể được truy cập trong thời gian dưới tuyến tính).
Ví dụ
>Sử dụng isDisjointFrom()
Tập số chính phương (<20) rời nhau với tập số nguyên tố (<20), vì một số chính phương theo định nghĩa có thể phân tích thành tích của hai số nguyên, trong khi 1 cũng không được coi là số nguyên tố:
const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]);
const squares = new Set([1, 4, 9, 16]);
console.log(primes.isDisjointFrom(squares)); // true
Tập số chính phương (<20) không rời nhau với tập số hợp (<20), vì tất cả số chính phương khác 1 theo định nghĩa là số hợp:
const composites = new Set([4, 6, 8, 9, 10, 12, 14, 15, 16, 18]);
const squares = new Set([1, 4, 9, 16]);
console.log(composites.isDisjointFrom(squares)); // false
Đặc tả kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-set.prototype.isdisjointfrom> |