zoukankan      html  css  js  c++  java
  • ES6 Map

    1、Map结构

    Map为“键值对”的数据结构

    const m = new Map();

    2、构造函数

    作为构造函数,Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

    const map = new Map([
      ['name', '张三'],
      ['title', 'Author']
    ]);
    
    map.size // 2
    map.has('name') // true
    map.get('name') // "张三"
    map.has('title') // true
    map.get('title') // "Author"

    3、键

     Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。

    如果 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键

    4、set

    set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。

    set结构的新增成员为add方法,其他方法如has、delete、clear一样。

    5、get(key)


    6、遍历方法

    keys():返回键名的遍历器。
    values():返回键值的遍历器。
    entries():返回所有成员的遍历器。
    forEach():遍历 Map 的所有成员。

    for (let item of map.entries()) {
      console.log(item[0], item[1]);
    }
    // "F" "no"
    // "T" "yes"
    
    // 或者
    for (let [key, value] of map.entries()) {
      console.log(key, value);
    }
    // "F" "no"
    // "T" "yes"
    
    // 等同于使用map.entries()
    for (let [key, value] of map) {
      console.log(key, value);
    }
    // "F" "no"
    // "T" "yes"

    7、转为数组

    Map 结构转为数组结构,比较快速的方法是使用扩展运算符(...)。

    const map = new Map([
      [1, 'one'],
      [2, 'two'],
      [3, 'three'],
    ]);
    
    [...map.keys()]

    set结构也是这样转换为数组。

    8、forEach

    map.forEach(function(value, key, map) {
      console.log("Key: %s, Value: %s", key, value);
    });

    注:forEach的回调函数第一个参数为value,第二个为key。

    set结构具有foreach方法。

    总结:与set结构的方法区别有构造函数和新增函数(add/set)

  • 相关阅读:
    ScheduledThreadPoolExecutor源码解读
    Spring事务源码阅读笔记
    Spring AOP的实现研究
    cglib之Enhancer
    Spring IOC容器创建bean过程浅析
    CompletionService简讲
    Spring Boot:关于“No converter found for return value of type: class xxx”的解决方法
    java关于Date转换成字符串格式以及Date的增加
    jsp中文乱码六种情况---解决方案
    MYSQL给表添加字段
  • 原文地址:https://www.cnblogs.com/mengfangui/p/8028710.html
Copyright © 2011-2022 走看看