SE6 Set
Set:ES6 新的数据结构,类似数组,但元素唯一
操作方法:
|
add(value)
|
添成员并返回Set本身
|
|
has(value)
|
通过 键 判断 成员 是否存在
|
|
size
|
返回成员数量
|
|
delete(value)
|
通过 键 移除 成员
|
|
clear()
|
清空所有成员
|
const obj1 = { name: "tom" };
const s = new Set();
console.log(s);
const s1 = s.add(obj1) // 添加成员并返回Set本身
console.log(s, s1);
console.log(s.has(obj1)); // 通过 键 判断 成员 是否存在
console.log(s.size); // 返回成员数量
s.delete(obj1) // 通过 键 移除 成员
console.log(s);
s.clear() // 清空所有成员
// 由于Set成员唯一性,所以没有get方法
遍历方法:
|
keys
|
返回 成员
|
|
values
|
返回 成员
|
|
entries
|
返回 [成员, 成员]
|
|
for of
|
返回 成员
|
|
forEach
|
返回 成员
|
const obj1 = { name: "tom" };
const obj2 = { name: "anne" };
const obj3 = { name: "jack" };
const s = new Set();
s.add(obj1)
s.add(obj2)
s.add(obj3)
console.log(s);
// keys():返回 成员
for (const item of s.keys()) {
console.log(item)
}
// values():返回 成员
for (const item of s.values()) {
console.log(item)
}
// entries():返回 [成员, 成员]
for (const item of s.entries()) {
console.log(item)
}
// 返回 成员
for (const item of s) {
console.log(item)
}
// 返回 成员
s.forEach(item => {
console.log(item)
})
// 经典 Set 数组去重;Array.from 将类数组转换成数组 let ArrayHeavy = (arr) => { return Array.from(new Set(arr)) }; var arr = ["妹子", 1, 1, undefined, 2, 3, true, 4, 3, "男人", 8, 3, "妹子", undefined, true]; console.log(ArrayHeavy(arr));
// 字符串去重;...把Set元素解构塞进[]数组,然后join数组转字符串 var arr = [...new Set('aabbccdd')].join('') console.log(arr); // abcd
// 空对象对应不同的内存地址,因此不是重复的数据 const s = new Set(); s.add({}); s.add({}); console.log(s); // Set(2) {{}, {}}

浙公网安备 33010602011771号