// 一种新的数据解构 set
// 成员值是唯一的
// let s = new Set([1, 2, 3])
// // s.add(‘imooc‘).add(‘set‘) // 增加 链式操作
// // s.delete(2) // 删除
// // // s.clear() // 清空所有数据
// // console.log(s.has(1)) // 判断set里是否有某一个值 返回布尔值
// // // console.log(s.size) // 判断set 里有多少值
// console.log(s)
//遍历
// s.forEach(item => {
// console.log(item)
// })
// for (let item of s) {
// console.log(item)
// }
// for (let item of s.keys()) {
// console.log(item)
// }
// for (let item of s.values()) {
// console.log(item)
// }
// for (let item of s.entries()) {
// console.log(item[0], item[1])
// }
// set 也有key value 但是值是一样的
//set 的应用 数组去重
// let arr = [1, 2, 3, 2, 5, 1]
// let s = new Set(arr)
// console.log(s)
// let arr1 = [1, 2, 3, 4]
// let arr2 = [2, 3, 4, 5, 6]
// //数组合并去重
// // let s = new Set([...arr1, ...arr2])
// // console.log(s)
// // 不想得到set 想得到一个数组
// //方法一
// // console.log([...s])
// //方法二
// // console.log(Array.from(s))
// // 交集
// let s1 = new Set(arr1)
// let s2 = new Set(arr2)
// // let result = new Set(arr1.filter(item => s2.has(item)))
// // console.log(Array.from(result))
// // 差集
// let arr3 = new Set(arr1.filter(item => !s2.has(item)))
// let arr4 = new Set(arr2.filter(item => !s1.has(item)))
// console.log([...arr3, ...arr4])
//WeakSet //只能够存储对象
// let ws = new WeakSet()
// const obj1 = { name: ‘hky‘ }
// const obj2 = { age: 25 }
// ws.add(obj1)
// ws.add(obj2)
// ws.delete(obj1)
// console.log(ws)
// console.log(ws.has(obj2))
// WeakSet 不允许遍历 弱引用 并不会被垃圾回收机制所考虑 不存在垃圾回收问题
// 适合临时存储一些对象
//垃圾回收机制 GC
原文:https://www.cnblogs.com/hekeying/p/14476853.html