1

今天主要谈谈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?:我的键包罗万象,任何类型的数据都没问题,尽管放马过来,对象能干的事儿我都能干,他干不了的事儿,我也能干!

最后 ?

好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞?哦,阿门~


羞羞的王大锤
41 声望3 粉丝

慌慌张张,匆匆忙忙