学习参考: https://mp.weixin.qq.com/s/o-lhJSQBOsimtgmMLPZcMw
https://es6.ruanyifeng.com/#docs/set-map
Set
const set = new Set([1,2,3,4,4]);
console.log([...set]) // [1, 2, 3, 4]
可用于数组去重:
[...new Set(array)]
上面的方法也可以用于,去除字符串里面的重复字符。
[...new Set('ababbc')].join('')
// "abc"
Array.from方法可以将 Set 结构转为数组:
const items = new Set([1, 2 , 3, 4 , 4 ]);
const array = Array.from(items);
所以有了数组去重的另外一种方法:
Array.from(new Set(array))
另外的一些应用:
const arr1 = new Set([1, 2, 3])
const arr2 = new Set([4, 3, 2])
// 并集
const union = new Set([...arr1, ...arr2])
// 交集
const intersect = new Set([...arr1].filter(item => arr2.has(item)))
// 差集
const difference = new Set([...arr1].filter(item => !arr2.has(item)))
console.log(union)
console.log(intersect)
console.log(difference)
image.png
Map
const m = new Map();
const o = {p: 'Hello World'};
m.set(o, 'content')
m.get(o) // "content"
- 向 Map 添加成员。作为构造函数,Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组
const map = new Map([
['name', '张三'],
['age', 12]
])
console.log(map.get('name')) // 张三
console.log(map.get('age')) // 12
网友评论