set
- set代表的就是集合
maphash表 - 集合就是不能有重复的项目 数组去重
new Set
// generator => iterator
// let set = new Set([1,2,3,3,2,1]); // 他的key 和值时一样的
// 无论什么数据类型 增删改查
// console.log(set.values());
// set.forEach(item => {
// console.log(item);
// });
示例
// 如何求两个数组 的并集 差集 交集
let arr1 = [1, 2, 3];
let arr2 = [3, 4, 5]; // [...arr1,...arr2]
// set是可以被迭代的 [...set]
// 1)并集
// let set = new Set([...arr1,...arr2]);
// let union = [...set];
// 2)交集
// let s1 = new Set(arr1);
// let s2 = new Set(arr2);
// let intersection = [...s1].filter(item=>{ // 1,2,3 如果返回true 就保留到新的数组中
// return s2.has(item);
// })
// console.log(intersection);
// 差集
let s1 = new Set(arr1);
let s2 = new Set(arr2);
let intersection = [...s1].filter(item => { // 1,2,3 如果返回true 就保留到新的数组中
return !s2.has(item);
});
console.log(intersection);
map
// map 叫他hash表 散列
// key不能重复
let map = new Map();
map.set({ a: 1 }, '123');
map.set('b', '456');
map.set({ a: 1 }, 123);
// 用法同 set方法
console.log(map.get('b'));
// WeakMap key只能是一个对象