以下是 Set
对象的最新方法和一些常见用法:
访问、添加和删除元素
方法 | 参数和说明 | 描述 | 示例代码 |
---|
add(value) | value :要添加到 Set 对象中的值。 | 向 Set 对象添加一个元素,如果该元素已经存在则不进行任何操作。 | const set = new Set(); set.add(1); set.add(2); set.add(1); // Set {1, 2} |
delete(value) | value :要从 Set 对象中移除的元素。 | 如果 Set 对象中存在该元素,则移除该元素并返回 true ,否则返回 false 。 | const set = new Set([1, 2, 3]); set.delete(2); // true |
clear() | 无 | 移除 Set 对象中的所有元素。 | const set = new Set([1, 2, 3]); set.clear(); // Set {} |
查找和筛选元素
方法 | 参数和说明 | 描述 | 示例代码 |
---|
has(value) | value :要测试在 Set 对象中是否存在的元素。 | 如果 Set 对象中存在该元素,则返回 true ,否则返回 false 。 | const set = new Set([1, 2, 3]); set.has(2); // true |
遍历
方法 | 参数和说明 | 描述 | 示例代码 |
---|
forEach(callback, thisArg) | callback :对每个元素执行的函数,thisArg :执行回调时用于 this 的值。 | 对 Set 对象的每个值执行一次提供的函数。 | const set = new Set([1, 2, 3]); set.forEach(value => console.log(value)); |
entries() | 无 | 返回一个新的 Iterator 对象,它包含 Set 对象中每个元素的 [value, value] 数组。 | const set = new Set([1, 2, 3]); for (const entry of set.entries()) { console.log(entry); } |
keys() | 无 | 返回一个新的 Iterator 对象,它包含 Set 对象中的每个元素。 | const set = new Set([1, 2, 3]); for (const key of set.keys()) { console.log(key); } |
values() | 无 | 返回一个新的 Iterator 对象,它包含 Set 对象中的每个元素。 | const set = new Set([1, 2, 3]); for (const value of set.values()) { console.log(value); } |
其他方法
方法 | 参数和说明 | 描述 | 示例代码 |
---|
size | 无 | 返回 Set 对象中的值的个数。 | const set = new Set([1, 2, 3]); console.log(set.size); // 3 |
intersection(Set) | Set :进行比较的Set 对象 | 返回两个Set 对象的交集 | const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4, 5]); console.log(set1.intersection(set2)); // Set(2) {2, 3} |
union(Set) | Set :进行比较的Set 对象 | 返回两个Set 对象的并集 | const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4, 5]); console.log(set1.union(set2)); // Set(5) {1, 2, 3, 4, 5} |
difference(Set) | Set :进行比较的Set 对象 | 返回两个Set 对象的差集 | const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4, 5]); console.log(set1.difference(set2)); //Set(1) {1} console.log(set2.difference(set1)); // Set(2) {4, 5} |
symmetricDifference(Set) | Set :进行比较的Set 对象 | 返回两个Set 对象的差集的并集。 | const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3, 4, 5]); console.log(set1.symmetricDifference(set2)); //Set(3) {1, 4, 5} |
isSubsetOf(Set) | Set :进行判断的对象 | 返回 Set 是否是另一个 Set 的子集, 是的返回true,否则返回false。。 | const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3]); console.log(set2.isSubsetOf(set1)); //true |
isSupersetOf(Set) | Set :进行判断的对象 | 返回 Set 是否是另一个 Set 的超集, 是的返回true,否则返回false。。 | const set1 = new Set([1, 2, 3]); const set2 = new Set([2, 3]); console.log(set1.isSupersetOf(set2)); //true |
完整示例
const set = new Set();
set.add(1);
set.add(2);
set.add(3);
console.log(set);
console.log(set.has(2));
console.log(set.has(4));
set.delete(2);
console.log(set);
console.log(set.size);
set.forEach(value => {
console.log(value);
});
for (const entry of set.entries()) {
console.log(entry);
}
for (const key of set.keys()) {
console.log(key);
}
for (const value of set.values()) {
console.log(value);
}
set.clear();
console.log(set);
const set1 = new Set([1, 2, 3]);
const set2 = new Set([2, 3, 4, 5]);
const set3 = new Set([2, 3]);
set1.intersection(set2);
set1.union(set2);
set1.difference(set2);
set1.symmetricDifference(set2);
set3.isSubsetOf(set1);
set1.isSupersetOf(set3);
Set
对象是 ES6(ECMAScript 2015)中引入的,以上方法使得操作集合变得非常方便。通过这些方法,你可以有效地管理和操作集合中的元素。
set
对象这些方法 intersection()、union()、difference()、symmetricDifference()、isSubsetOf()、isSupersetOf() 目前只能在Node 22+、Chrome/Edge 122+、Firefox 127+、Safari 17+中使用。