• ES6-


    Map和Set 是 ES6 中新增的一种数据结构。Map为类似于Object的键值对结构,Set为成员唯一的类数组结构。以Map为例介绍两种数据结构的遍历方法。for...of

    var map = new Map([ ['age', 19], ['height', 180] ]);

    或使用set()函数:var map = new Map();
    map.set('age',19).set('height',180);
     
    var set = new Set( [1, 2, 3, 4, 2, 1] ); //接收一个数组作为初始化
    [...set] //[1,2,3,4]
    或使用add()函数: var set = new Set();
    set.add(1).add(2);
     
    //由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。
    for (let key of map.keys()) { console.log(key); } 
    for (let value of map.values()) { console.log(value); } for (let item of map.entries()) { console.log(`${ item[0] }: ${ item[1] }`); }
    map.forEach((key, value, map) => {
      console.log(`${ key }: ${ value }`);
    });
    
    // forEach 的第二个参数用来绑定this绑定 this
    var reporter = {
      report(key, value) {
        console.log(`${ key }: ${ value } by reporter object.`);
      }
    }
    map.forEach(function (key, value) {// 使用箭头函数会导致这个 this 是 undefined 
    this.report(key, value);
    }, reporter)
    //Set 结构没有以下方法
    for (let [key, value] of map.entries()) {
      console.log(`${ key }: ${ value }`);       
    }
    
    for (let [key, value] of map) {                
      console.log(`${ key }: ${ value }`);
    }
    
    数据结构间的相互转化:
    Map->数组 [...map]
    数组->Map new Map([1,2])
    Map->object:

      for ( let [ key, value ] of map.entries() ){
        obj[key] = value;
      }

    Object->Map:

      let map1 = new Map();
      for ( let item in a ){
        map1.set( item,a[item] )
      }










  • 相关阅读:
    python 数据结构与算法 day04 冒泡排序
    阿里代码扫描插件安装 (IDEA)
    Kafka
    女生赛训练 2
    2019 DISCS PrO High School Division
    计算机安全之密码安全 从 Hash 到 MD5
    CodeForces Round #559 Div.2
    CodeForces Round #558 Div.2
    CodeForces Round #560 Div.3
    NCD 2019 (AK)
  • 原文地址:https://www.cnblogs.com/telnetzhang/p/7272858.html
Copyright © 2020-2023  润新知