zoukankan      html  css  js  c++  java
  • 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}
  • 相关阅读:
    3. 23 模拟面试
    3.15 模拟面试
    C++ 浅谈virtual
    3.6 模拟面试
    为s5pv210烧录镜像
    HISI VENC 实际输出帧率控制
    live555 交叉编译移植到海思开发板
    雄迈取流
    面试官吐槽:“软件测试员就是不行!”网友:我能把你面哭了!——软件测试笔试面试题目完全汇总
    “女人~,你在玩火”一个有磁性的声音说道——常用自动化测试工具
  • 原文地址:https://www.cnblogs.com/yuanxinru321/p/7545768.html
Copyright © 2011-2022 走看看