ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
const s = new Set();
// 通过add()方法向 Set 结构加入成员
s.add(0).add(1).add(2).add(3).add(2);
// 结果表明 Set 结构不会添加重复的值
console.log(s); // Set { 0, 1, 2, 3 }
s.forEach((i) => {
console.log(i);
});
for (let i of s) {
console.log(i);
}
console.log(s.has(9)); // false
console.log(s.has(3)); // true
console.log(s.delete(2)); // true
console.log(s); // Set { 0, 1, 3 }
console.log(s.size); // 3
s.clear();
console.log(s); // Set {}
Set数据结构用于数组的去重:
const arr = [1, 2, 1, 3, 5];
console.log(new Set(arr)); // Set { 1, 2, 3, 5 }
const result = Array.from(new Set(arr));
// 或者使用ES6的剩余参数更为简洁
// const result = [...new Set(arr)];
console.log(result); // [ 1, 2, 3, 5 ]