Set.prototype.difference()
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 difference() 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 set này nhưng không có trong set đã cho.
Cú pháp
difference(other)
Tham số
Giá trị trả về
Một đối tượng Set mới chứa các phần tử có trong set này nhưng không có trong other.
Mô tả
Trong ký hiệu toán học, hiệu (difference) được định nghĩa như sau:
Và bằng biểu đồ Venn:
difference() 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ử trongthiskhông thấy trongother. - 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ị falsy.
Thứ tự các phần tử trong set được trả về giống như trong this.
Ví dụ
>Sử dụng difference()
Ví dụ sau tính hiệu giữa tập số lẻ (<10) và tập số chính phương (<10). Kết quả là tập số lẻ không phải số chính phương.
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.difference(squares)); // Set(3) { 3, 5, 7 }
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| ECMAScript® 2027 Language Specification> # sec-set.prototype.difference> |