Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等,如果值一样的就只取一个。
有几个特殊值需要特殊对待:
(1)+0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复
(2)undefined 与 undefined 是恒等的,所以不重复;
(3)NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复
Set用add添加成员
var s1=new Set([12,44,[23,45]])
s1.add(1);
s1.add({"age":20})
console.log(s1)
获取Set中的成员用遍历的方法
var s1 =new Set( [120, 30, 30, 10,{}])
s1.forEach(function(el){
console.log(el)
})
合并两个集合用...
var s1=new Set([12,44,[23,45]])
var s2=new Set([12,'dicw','dc',12])
var s3=new Set([...s1,...s2])
console.log(s3)
求两个集合的交集
var arr = [120, 30, 30, 10,{}]
var arr1 = [10, 200,30,10,{}]//两个集合的引用数据不同
var s2 = new Set(arr.filter(function(el) {
if (arr1.includes(el)) {
return el
}
}))
console.log(s2)
Set转换数组
var s1 =new Set( [120, 30, 30, 10,{}])
s2=Array.from(s1)
console.log(s2)