今天主要谈谈ES6中新增加的两个数据结构,一个是Set一个是Map
他们到底是什么意思呢?
粗略的说Set是特殊的数组;Map是增强版的对象
下面我们就来认识一下这哥俩
Set
Set它类似于数组,只是这个数组里的值都是唯一的,没有重复!
const s = new Set([1,1,2,2])
[...s] //[1,2]
Set?:想在我这儿浑水摸鱼,人云亦云、滥竽充数,不能gou!你必须是独一无二的那一个!
Set用途
它一般被用来去除数组中重复的成员、取并集、交集、差集,因为真的很方便
去重
const s = new Set([1,1,2,2])
[...s] //[1,2]
取并集
let s1 = new Set([1,2])
let s2 = new Set([2,3])
let union = new Set([...s1,...s2])
union // Set {1,2,3}
取交集
let s1 = new Set([1,2]);
let s2 = new Set([2,3]);
let intersect = new Set([...s1].filter(x =>s2.has(x)))
intersect // Set {2}
取差集
let s1 = new Set([1,2]);
let s2 = new Set([2,3]);
let difference = new Set([...s1].filter(x =>!s2.has(x)))
difference // Set {1,3}
Map
Map它类似于对象,也是键值对的集合,但是"键"的范围不局限于字符串啦,各种类型的值包括对象都可以当它的键,可以说Map是一个增强版的对象
// 常规字符串作为键
// 对象的定义
const obj = {}
obj.name = 'chuichui'
obj //{name: "chuichui"}
// Map的定义
const map = new Map()
map.name = 'chuichui'
map //Map {name: "chuichui"}
Map中的键还可以是一个数组,只要你想到的都可以!
const map = new Map()
const arr = [1,2,3]
map.set(arr,1)
map.get(arr) // 1
Map?:我的键包罗万象,任何类型的数据都没问题,尽管放马过来,对象能干的事儿我都能干,他干不了的事儿,我也能干!
最后 ?
好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞?哦,阿门~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。