zoukankan      html  css  js  c++  java
  • es6的map

    Javascript的Object本身就是键值对的数据结构,但实际上属性和值构成的是”字符串-值“对,属性只能是字符串

    map是ES6提供的”值-值“对的数据结构,键名不仅可以是字符串,也可以是对象等:

    const map = new Map();
    const objkey = {p1: 'v1'}
    map.set(objkey, 'hello');
    console.log(map.get(objkey));   // 'hello'
    
    map.set('k1', 6);        // 键是字符串
    map.set(222, '哈哈哈');     // 键是数值
    map.set(undefined, 'gagaga');    // 键是 undefined
    
    const fun = function() {console.log('hello');}
    map4.set(fun, 'fun');   // 键是 function
    
    map4.set('k2', 2).set('k3', 4).set('k4', 5);   // 链式调用

    Map可以接受数组作为参数,数组成员还是一个数组,里面的数组有两个元素,一个表示键一个表示值

    const map = new Map([
      ['name', 'Aissen'],
      ['age', 12]
    ]);
    console.log(map.get('name'));   // 'Aissen'
    console.log(map.get('age'));   // 12

    size同Set的size

    has同Set的has

    delete和clear同Set的delete和clear

    get

    const map5 = new Map();
    map5.set('k1', 6); 
    console.log(map.get('k1'));   // 6

    map.keys

    const map = new Map();
    map.set('k1', 1);
    map.set('k2', 2);
    map.set('k3', 3);
    console.log(map.keys());   // {"k1", "k2", "k3"}

    map.values()

    const map9 = new Map();
    map9.set('k1', 1);
    map9.set('k2', 2);
    map9.set('k3', 3);
    console.log(map9.values());   // {1 2 3}

    map.entries()

    const map9 = new Map();
    map9.set('k1', 1);
    map9.set('k2', 2);
    map9.set('k3', 3);
    console.log(map9.entries());   // {"k1" => 1, "k2" => 2, "k3" => 3}

    转化成数组

    const map = new Map();
    map.set('k1', 1);
    map.set('k2', 2);
    map.set('k3', 3);
    console.log([...map]);   // [ [ 'k1', 1 ], [ 'k2', 2 ], [ 'k3', 3 ] ]

    set转换成map

    const set = new Set([
      ['foo', 1],
      ['bar', 2]
    ]);
    const map = new Map(set);
    console.log(map);   // Map { 'foo' => 1, 'bar' => 2 }

    map转换成set

    function mapToSet(map) {
      let set = new Set();
      for (let [k,v] of map) {
        set.add([k, v]);
      }
      return set;
    }
    
    const map = new Map()
      .set('k1', 1)
      .set({pa:1}, 2);
    console.log(mapToSet(map));   // Set { [ 'k1', 1 ], [ { pa: 1 }, 2 ] }

    原文:https://www.cnblogs.com/kongxianghai/p/7309735.html

  • 相关阅读:
    qt中文乱码问题
    【Qt开发】QThread 实用技巧、误区----但文档中没有提到
    TCP/UDP网络性能测试工具
    wireshark怎么抓包、wireshark抓包详细图文教程
    INDEX--从数据存放的角度看索引2
    杂谈--从基数评估来看问题1
    INDEX--从数据存放的角度看索引
    疑难杂症--为数据库主文件所在磁盘保留一定量磁盘空间
    统计--VARCHAR与NVARCHAR在统计预估上的区别
    杂谈--SQL SERVER版本
  • 原文地址:https://www.cnblogs.com/xjy20170907/p/12681950.html
Copyright © 2011-2022 走看看