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) {{}, {}}