// Set类似于Array,会自动去重
let s = new Set();
console.log(s, typeof s)
let s1 = new Set([2]);
let s2 = new Set([1,2,3,3,444,5,5])
console.log(s1,s2)
// 添加
s2.add(666);
console.log(s2)
// 检测是否存在
console.log(s2.has(666))
// 删除
s2.delete(666)
console.log(s2)
// 清空
s2.clear();
console.log(s2)
// 数组去重
let arr=[1,1,2,2,3,3,6,4,5]
let arr1=[...new Set(arr)]
console.log(arr1)
// 数组交集
let arr2 = new Set([11,22,55,4,6])
let arr3 = [...arr1].filter(item=>{
if(arr2.has(item))return true
return false
})
console.log(arr3)
// 数组并集
let arr4 = new Set([...arr2,...arr1])
console.log(arr4)
// 数组差集
let arr5 = [...arr1].filter(item=>{
if(!arr2.has(item))return true
return false
})
console.log(arr5)
// Map,类似于对象,也是键值对集合。但是键的范围不局限String
// 各种类型包括对象都可以作为键;
// Map实现了iterator接口可使用for...of进行遍历和扩展运算符...
// .size:长度
// .set:添加
// .get:获取键值[key,value]