zoukankan      html  css  js  c++  java
  • new Map() 让键值对操作变的更简洁

    介绍:

      对象保存键值对,并记住键的原始插入顺序。任何值(对象原始值)都可以用作键或值。

      // const map = new Map();
      const map = new Map([[1, 2], [{ a: 1 }, 2], ["1", 2]]);
      console.log(map) // Map(3) {1 => 2, {…} => 2, "1" => 2}

    实例属性和方法:

    size      项数
    set       添加一个新建元素到映射
    clear    从映射中移除所有元素
    delete    从映射中移除指定的元素
    has       如果映射包含指定元素,则返回 true
    get       返回映射中的指定元素
    toString  返回映射的字符串表达式
    valueOf   返回指定对象的原始值
    const myMap = new Map();
    // 任何值(对象值和原始值)都可以用作键或值 const keyObj = {}; myMap.set(keyObj, 'value associated with keyObj'); console.log(myMap.get(keyObj)) // value associated with keyObj // 添加 和 获取 时所用的 key 指向不同地址,所以无法获取 myMap.set({}, 'value associated with {}'); console.log(myMap.get({})); // undefined // 虽然 NaN !== NaN,但在 new Map()中 NaN 被视为与 NaN 相同 myMap.set(NaN, 'value associated with NaN'); console.log(myMap.get(NaN)); // value associated with NaN console.log(NaN === NaN); // false

    遍历方法:

    forEach()
    语法:Map.prototype.forEach(callbackFn, this)
    每循环一项,执行一次回调 callbackFn,第二个参数改变回调函数的 this 指向,
    注意:callbackFn 如果是箭头函数,this 指向父级
    const map = new Map([[1, 1], [{ a: 1 }, 2], ["1", 3]]);
    const fn  = function(value, key, map) {
      console.log(`${value} = ${key}`, this)
    }
    map.forEach(fn, window);
    // value = key Window
    // 2 = 1 Window

    keys()

    values()

    entries()

    for..of

    let myMap = new Map()
    myMap.set(0, 'zero')
    myMap.set(1, 'one')
    
    for (let [key, value] of myMap) {
      console.log(key + ' = ' + value)
    }
    // 0 = zero
    // 1 = one
    
    for (let key of myMap.keys()) {
      console.log(key)
    }
    // 0
    // 1
    
    for (let value of myMap.values()) {
      console.log(value)
    }
    // zero
    // one
    
    for (let [key, value] of myMap.entries()) {
      console.log(key + ' = ' + value)
    }
    // 0 = zero
    // 1 = one
  • 相关阅读:
    前后台分离--概念相关
    dubbo概述
    memcache
    分布式系统事务
    2018书单索引
    Lucene原理之概念
    java 通用对象排序
    LightOJ1214 Large Division —— 大数求模
    LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数
    LightOJ1245 Harmonic Number (II) —— 规律
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/13744907.html
Copyright © 2011-2022 走看看