• ECMAScript 6中的Set和Map数据结构


    一.Set

      基本用法:

        Set本身是一个构造函数,用来生成Set数据结构。Set函数可以接受一个数组作为参数用来初始化。 

    const arr = new Set([2,2,3,3,4,4,5,8]);
    console.log(arr);
    

      set的属性和方法

      属性:

       Set.prototype.constructor:构造函数,默认就是Set函数。

         Set.prototype.size:返回Set实例的成员总数。

    let set  = new Set([1,1,2,2,3,4])
    set.size       //4
    

     方法:

      1.add(value):添加某个值,返回 Set 结构本身。 

    let set = new Set();
    set.add(1);    //Set(1){1}
    

      2.delete:删除某个值,返回一个布尔值,表示删除是否成功。

    let set  = new Set();
    set.add(1).add(2);     //Set(2){1,2}
    set.delete(2);            //    true
    console.log(set);        //Set(1){1}
    

      3.has(value):返回一个布尔值,表示该值是否为Set的成员。

    let set  = new Set();
    set.add(1).add(2);     //Set(2){1,2}
    set.has(2);            //    false
    

      4.clear():清除所有成员,没有返回值。

    let set  = new Set();
    set.add(1).add(2);     //Set(2){1,2}
    set.clear(); 
    console.log(set);       //Set(0){}  

    可以通过Array.from方法将Set结构转为数组

    let set = new Set();
    set.add(1).add(2);
    let setArray = Array.from(set);
    console.log(setArray );          //[1,2]
    

      然而,我们可以通过Set()和Array.from对数组进行去重 

    function deleUp(arr){
        return Array.from(new Set(arr))
    }
    let set = [1,1,2,2,3,3];
    deleUp(set);     //[1,2,3]
    

    二.Map

       基本用法:Map类似对象,也是键值对的集合。Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。和Set()一样,Map也可以接受一个数组作为参数进行初始化。

      实例的属性和方法

      size:返回Map结构的成员总数。

    const map = new Map();
    map.set('a',true);
    map.set('b',false);
    map.size;
    

      set(key,value):key可以是字符串、数组、undefined

    const map = new Map();
    map.set('name','zhangsan').set(1,'a'); //Map(2) {"name" => "zhangsan", 1 => "a"}
    

      get(key):返回key的值,如果没有相应的key,则返回undefined

    const map = new Map();
    map.set('name','zhangsan').set(1,'a'); //Map(2) {"name" => "zhangsan", 1 => "a"}
    map.get('name');    //zhangsan
    

      has(key)、delete(key)、clear()方法和Set实例中相关方法一样。

    三、其它

      关于Set和Map这里只做简单介绍,详细内容请查阅《ECMAScript 6》中的Set和Map数据结构。

     

     

  • 相关阅读:
    Ant Design Vue中TreeSelect详解
    ant-design-vue 表单验证详解
    vue3跟新视图遇见神奇现象
    遇见这样的数型结构图我是这样画的
    Ant Design Vue中Table的选中详解
    2021 年百度之星·程序设计大赛
    2021 年百度之星·程序设计大赛
    2021牛客暑期多校训练营7 H. xay loves count(枚举)
    2021牛客暑期多校训练营6 H. Hopping Rabbit(扫描线)
    P1494 [国家集训队]小Z的袜子(莫队)
  • 原文地址:https://www.cnblogs.com/xufeikko/p/9872521.html
Copyright © 2020-2023  润新知