Map和Set

2019-07-23  本文已影响0人  An的杂货铺

最新的ES6规范引入了新的数据类型Map和Set,需在支持es6的浏览器使用,Map是一组键值对的结构,具有极快的查找速度

Map 的声明方式

// 初始化Map需要一个二维数组,或者直接初始化一个空Map

var  m = new Map();

var n = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);

console.log(m);//{}

console.log(n);//{"Michael" => 95, "Bob" => 75, "Tracy" => 85}

Map的使用方法

var maps = new Map();

maps.set('lili','98');//添加新的key-value

console.log(map);// {"lili" => "98"}

var score = map.get('lili');//获取键值

console.log(score);//98

console.log(map.has('lili'));//true 查看是否含有某个键 返回布尔值

map.delete('lili');//删除某个键

console.log(map.get('lili'));//undefined

// 由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉

Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key

Set的声明方式

    //要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set

    var set = new Set();

    var aset = ([1,2,3]);

    console.log(set);//{}

    console.log(aset);//[1,2,3]

重复元素在Set中自动被过滤:

    var arrone = [1,3,3,5,6,'6'];

    console.log(new Set(arrone));//[1,3,5,6,'6']

    //根据Set的这个特性可以用来给数组去重

通过add(key)方法可以添加元素到Set中,可以重复添加,但不会有效果

    set.add(23);

    set.add(32);

    set.add(23);

    console.log(set);//[23,32]

通过delete(key)方法可以删除元素

    set.delete(32)

    console.log(set);//[23]
上一篇下一篇

猜你喜欢

热点阅读