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 

      

  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/thonrt/p/6227246.html
Copyright © 2011-2022 走看看