本文主要是介绍es6(基础十三) Set与WeakSet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、概念
1.新的数据结构,类似于数组
2.值都是唯一的
let set1 = new Set();
console.info(set1);//Set(0) {}let set2 = new Set([1,2,3,4,5,4,3]);//去重
console.info(set2);//Set(5) {1, 2, 3, 4, 5}let set3 = new Set([1,2,3,'1','2']);//采用全等比较,1与'1'不同
console.info(set3);//Set(5) {1, 2, 3, "1", "2"}
二、作用:数组去重
function dedupe(array) {return Array.from(new Set(array));
}
console.info(dedupe([1, 1, 2, 3])); //(3) [1, 2, 3]
三、使用方法
new Set()
add=>增
size=>length
clear=>清空(全删)
delete=>删除某一个
has=>查
let set4 = new Set();
set4.add(1);
set4.add("你好es6");
set4.add("3")
console.info(set4);//Set(3) {1, "你好es6", "3"}
set4.delete('3');
console.info(set4);//Set(2) {1, "你好es6"}
console.info(set4.size);//2
console.info(set4.has(1));//true
set4.clear();
console.info(set4);//Set(0) {}
四、遍历方法
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
let arr5 = new Set(['a','b','c'])
for(let key of arr5.keys()){console.info(key);// a b c
}
for(let value of arr5.values()){console.info(value);//与上面一样
}
五、WeakSet与Set的不同
1.weakSet的值必须是对象
2.方法不同
add
delete
has
let weakset1 = new WeakSet();
weakset1.add({});
console.log(weakset1);//WeakSet {{…}}
这篇关于es6(基础十三) Set与WeakSet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!