码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中的Map和Set

时间:2017-09-19 15:23:44      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:value   array   自动   java   问题   默认   字符串   ber   dict   

JavaScript的默认对象表示方法{}可以视为其他语言中的Map或者Dictionary的数据结构,即一组键值对。

但是JavaScript的对象有个小问题,就是键必须是字符串,但实际上Number或者其他数据类型作为键也是非常合理的。

Map是一组键值对的结构,具有极快的查找速度。

     var m  = new Map([[‘Michael‘,95],[‘Bob‘,75],[‘Tracy‘,85]]);
        m.get(‘Michael‘);//95

初始化Map需要一个二维数组,或者直接初始化一个空Map。Map具有以下方法:

        var m = new Map();//空Map
        m.set(‘Adam‘,67);//添加新的key-value
        m.set(‘Bob‘,59);
        m.has(‘Adam‘);//是否存在key‘Adam’:true
        m.get(‘Adam‘);//67
        m.delete(‘Adam‘);//删除key‘Adam’
        m.get(‘Adam‘);//undefined

有雨一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的覆盖掉

     var m = new Map();
        m.set(‘Adam‘,67);
        m.set(‘Adam‘,88);
        m.get(‘Adam‘);//88

 

 

Set

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

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

 

     var s1 = new Set();//空set
        var s2 = new Set([1,2,3]);//含有1,2,3

 

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

var s = new Set([1,2,3,3,‘3‘]);
s;//Set{1,2,3,‘3‘},过滤掉一个重复元素3

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

     >>> s.add(4)
        >>>s
        {1,2,3,4}
        >>> s.add(4)
        >>> s
        {1,2,3,4}

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

     var s = new Set ([1,2,3]);
        s;//Set{1,2,3}
        s.delete(3);
        s;//Set{1,2}

 

JavaScript中的Map和Set

标签:value   array   自动   java   问题   默认   字符串   ber   dict   

原文地址:http://www.cnblogs.com/yuanxinru321/p/7545768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!