Set 遍历
在 JavaScript 中,Set
对象表示值的集合,在这个集合中每个值只出现一次。Set
对象是可迭代的,因此你可以使用多种方法来遍历它:
- for...of 循环:
可以使用 for...of
循环来遍历 Set
。
let mySet = new Set([1, 2, 3, 4, 5]);
for (let value of mySet) {
console.log(value); // 输出: 1, 2, 3, 4, 5
}
- forEach 方法:
Set
对象有一个 forEach
方法,就像 Array
一样。你可以提供一个回调函数,该函数将对 Set
中的每个元素执行。
mySet.forEach((value) => {
console.log(value); // 输出: 1, 2, 3, 4, 5
});
- 扩展运算符 (...):
扩展运算符可以将 Set
对象转换为数组。
let array = [...mySet];
// 现在可以使用数组的遍历方法
for (let i = 0; i < array.length; i++) {
console.log(array[i]); // 输出: 1, 2, 3, 4, 5
}
- Array.from 方法:
Array.from
方法可以将 Set
对象转化为数组。
let array = Array.from(mySet);
// 现在可以使用数组的遍历方法
array.forEach((value) => {
console.log(value); // 输出: 1, 2, 3, 4, 5
});
- keys(), values(), entries() 方法:
尽管 Set
对象没有键名只有键值,keys()
和 values()
方法的行为事实上是一样的,它们都会返回一个新的可迭代对象。entries()
方法也存在于 Set
上,但由于 Set
没有键名,它返回的迭代器将会为每个值提供一个[value, value]形式的数组。
for (let value of mySet.keys()) {
console.log(value); // 输出: 1, 2, 3, 4, 5
}
for (let value of mySet.values()) {
console.log(value); // 输出: 1, 2, 3, 4, 5
}
for (let entry of mySet.entries()) {
console.log(entry); // 输出: [1, 1], [2, 2], [3, 3], [4, 4], [5, 5]
}
使用哪种方法取决于你的个人喜好和具体的场景。但最常用的可能是 for...of
循环和 forEach
方法。