zoukankan      html  css  js  c++  java
  • ES6中的Set、Map数据结构

       MapSet都是ES6新的数据结构,他们都是新的内置构造函数。也就是说typeof的结果,多了两个。

    他们是什么:

       Set是不能重复的数组。

       Map是可以任何东西当做键的对象;

     

      ES6 提供了新的数据结构 Set它类似于数组,但是Set成员的值都是唯一的,没有重复的值

       let m = new Set();
    
                m.add(1);
    
                m.add(2);
    
                m.add(3);
    
                m.add(3);
    
                m.add(3);
    
                m.add(4);
    
                m.add(5);
    
             console.log(m);

     

     

     集合中添加数据用add()方法,会自动过滤已经有的元素。

      let m = new Set([1,1,1,1,2,2,2,2,3,3,3]);
    
        console.log(m);

     

       

     最快的数组去重的方法

      let m = new Set([1,1,1,1,2,2,2,2,3,3,3]);
    
        console.log(m);

     

       

      let m = new Set([1,2,3,4,5]);
    
       console.log(m.size);
    
       console.log(m.has(4));
    
       console.log(m.delete(4));
    
       console.log(m);

     

     

        集合的关注点是元素在里面,而不关注顺序,所以不提供枚举某项的API。但是可以转为数组[...m]

        ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map Object 更合适。

     let m = new Map();
    
       const o = {"a" : 1 , "b" : 2};
    
       m.set(o , 123);
    
       m.set(2 , 456);
    
       console.log(m);

     

     

     使用get来得到元素,key是区分类型的。

     console.log(m.get(o));

     

        本人的小小理解~~~

  • 相关阅读:
    面向对象编程的三大特性之一:继承与派生
    面向对象编程
    计算器作业(摘要算法)
    模块&包
    文件的查询、修改实例+tag的用法++函数+程序的解耦
    函数闭包与装饰器
    Python开发【第五篇】:Python基础之杂货铺 day14 06
    Python开发【第四篇】:Python基础之函数 day14--08
    文件操作
    第七篇 python基础之函数,递归,内置函数lhf -blogs day14-8
  • 原文地址:https://www.cnblogs.com/pms01/p/7096735.html
Copyright © 2011-2022 走看看