zoukankan      html  css  js  c++  java
  • es6--(三)set和map数据结构

    1.Set和WeakSet

     Set与数组相似,但是Set结构的成员必须是唯一的.

    WeakSet与对象类型,但是WeakSet结构的成员只能是对象

    Set结构的实例属性和方法

      属性:

        Set.prototype.constructor:构造函数

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

      方法:

        --add(value):添加值,返回Set结构本身

        --delete(value):删除某个值,返回一个布尔值

        --has(value):返回一个布尔值,判断该值是否为Set的成员

        --clear:清除所有成员,没有返回值

    Set结构遍历方法:

      --keys:返回键对的遍历器

      --values:返回键值的遍历器

      --entries:返回键值对的遍历器

      --forEach:使用回调遍历每个成员

     1 //声明一个Set类型(一)
     2 var set = new Set([1,2,3,4,2,8,4]);
     3 //声明一个Set类型(二)
     4 var set = new Set();
     5 for(let i =0;i<5;i++){
     6     set.add(i);   
     7 }
     8 for(let elem of set){
     9     console.log(elem);  // 1,2,3,4,8
    10 }

    扩展运算符 (...),转成数组

    var set = new Set();
    [1,2,4,8,3,4].map(function(elem){
          set.add(elem);
    });
    console.log("set = "+set); //set = [object Set]
    //扩展运算,将setL类型变成数组类型
    var arr = [...set];
    console.log("arr = " +arr);//arr = 1,2,4,8,3        

    删除和清空

    var set = new Set();
    [1,2,4,8,3,4].map(function(elem){
          set.add(elem);
    });
    console.log("set = "+set); //set = [object Set]
    set.delete(2); //删除2 arr = 1,4,8,3
    set.clear();  //清空   arr=
    //扩展运算,将setL类型变成数组类型
    var arr = [...set];
    console.log("arr = " +arr);//arr = 1,2,4,8,3 

    遍历键值

    var set = new Set();
    [1,2,4,8,3,4].map(function(elem){
         set.add(elem);
    });
    //键和值是相同的
    set.forEach(function(value,key){
       console.log(key + " = " + value);//1=1,2=2,3=3,4=4,8=8
    });

     WeakSet方法:

      --add(value):添加 一个成员

      --delete(value):清楚指定成员

      --has(value):返回一个boolean,判断某个值是否存在

     WeakSet的对象都是弱应用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说如果其他的对象都不再引用该对象,该对象就会被回收机制收回。因此,WeakSet是不可遍历的,因为成员很可能在遍历之后被回收了,消失了,成员就取不到了。

     

    2.Map和WeakMap 

      

  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/thonrt/p/6227246.html
Copyright © 2011-2022 走看看