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.
Phương thức intersection() của các instance Set nhận một set và trả về một set mới chứa các phần tử có trong cả set này và set đã cho.
Cú pháp
intersection(other)
Tham số
Giá trị trả về
Một đối tượng Set mới chứa các phần tử có trong cả set này và other.
Mô tả
Trong ký hiệu toán học, giao (intersection) được định nghĩa như sau:
Và bằng biểu đồ Venn:
intersection() 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à xây dựng một set mới với tất cả các phần tử được tạo ra cũng có mặt trongthis. - Ngược lại, nó duyệt các phần tử trong
this, và xây dựng một set mới với tất cả các phần tửetrongthiskhiếnother.has(e)trả về giá trị truthy.
Do cách triển khai này, hiệu quả của intersection() 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). Thứ tự các phần tử trong set được trả về giống như của set nhỏ hơn giữa this và other.
Ví dụ
>Sử dụng intersection()
Ví dụ sau tính giao giữa tập số lẻ (<10) và tập số chính phương (<10). Kết quả là tập số lẻ là số chính phương.
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 }
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| ECMAScript® 2027 Language Specification> # sec-set.prototype.intersection> |