ES6中的Set数据结构
Set 是 ES6 中新增的数据结构,用于存储不重复的值,允许存储任何类型的唯一值。Set 的核心特点是值唯一性,类似数学中的集合。
常用方法
- add(value)
添加值到Set中,如果值已存在则不会添加。
const set = new Set();
set.add(1); // Set {1}
1
2
- delete(value)
删除指定值,返回布尔值,表示是否删除成功。
set.delete(1); // true
1
- has(value)
检查值是否存在于Set中,返回布尔值。
set.has(1); // false
1
- clear()
清空整个Set。
set.clear(); // Set {}
1
- size
返回Set中的元素数量。
set.size; // 0
1
- forEach(callback)
遍历Set,为每个值执行一次提供的回调函数。
let mySet = new Set([1, 2, 3, 4, 5]);
mySet.forEach(function(value, key) {
console.log('value: ' + value + ', key: ' + key);
});
1
2
3
4
5
- 迭代器方法
keys() 和 values(): 返回包含集合中元素的迭代器(Set 的键和值相同)。
entries(): 返回[value, value]格式的迭代器,适用于Map接口的兼容。
for...of: 遍历Set中的每个值。
let mySet = new Set([1, 2, 3, 4, 5]);
// 使用 .values()
for (let value of mySet.values()) {
console.log(value);
}
// 使用 .keys(),与 .values() 相同
for (let key of mySet.keys()) {
console.log(key);
}
// 使用 .entries()
for (let entry of mySet.entries()) {
console.log(entry); // 每个 entry 是一个 [value, value] 的数组
}
// 使用 for...of 循环来迭代其值
for (let value of mySet) {
console.log(value);
}