JavaScript中的Map和Set

Posted 风雨飘飘飘啊飘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中的Map和Set相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-Map和Set

javascript中的set和map

JavaScript中的Map和Set

JavaScript 中的 Map, Set, WeakMap, WeakSet

javascript中的Set和Map数据结构

Map和Set