zoukankan      html  css  js  c++  java
  • 知识汇总10~es6的map与set用法

    js默认的对象表达方式是{}可以视为其他语言中的 Map 和 Dictionary 的数据结构;即一组键值对key - value;(键值对)

    js有个问题:对象表达方式{}中的键 key 必须是字符串,如下代码:

    var names={1:”a”,2:”b”};

    console.log(names.1)//Uncaught SyntaxError: missing ) after argument list

    如上代码是报错的,所以number类型的是不能作为key来使用.在ES6中新增了Map功能,可以解决这个问题.

    Map 



    ​Map的查询速度会比二维数组快,以下代码是二维数组:

    var names=[1,2,3];
    
    var scores=[95,89,78];

    ​二维数组array越长,耗时越长;而Map简单快速:

     var map=new Map([["a",95],["b",89],["c",78]]);​
    
    //​Map的增删改查:
    
     map.get("d",67);//改变成员value;
    
     map.set("d",59);// 增加成员;
    
     map.has("d");//确定是否有某个成员;
    
     map.delete("d");//删除成员;

    Set:​ 



    ​var s=new Set([1,2,3,3,3,3,”3”]);

    s.add(4);//增加成员;
    
    s.delete(4);//删除成员;
    
    s.forEach(function(a){
    
    alert(a+"/")
    
    })//查看成员;

    set去重


    ​Set与Map类似,但是Set的创建可以需要一个数组的输入,而且只是key的集合,并不存储value;key的值不能重复,所以在Set中不会有重复的key.这个原理可以过滤数组中的重复项

    项目实战


    在项目中遇到将一个字符串转化为字符串添加为下拉选择中的项,eg,"201807312235,201807312236,201807312237..."这些数字是时间年月日时分的写法,需要获取后配合vue中的v-for循环为下拉框的项,但是指定的项目类型有很多种,eg:'oneProject,twoProject...',每个项目获取的项目时间都不一样,在循环项目与时间时,需要配对,这个时候可以用map解决,
  • 相关阅读:
    ★★★
    ★★
    小狼程序员:工作遐想
    广联达BB了
    计算机网络简单理解
    做个合格的(优秀的)测试开发人员
    开发、测试、测试开发
    8.21
    C++ 选择题总结(回调函数 || 类方法(实例方法)|| )
    深拷贝实现笔记
  • 原文地址:https://www.cnblogs.com/sunshineForFuture/p/9394539.html
Copyright © 2011-2022 走看看