美文网首页js工具方法类集合
(ES6以上以及TS) Map对象转数组

(ES6以上以及TS) Map对象转数组

作者: 酸味的凯凯 | 来源:发表于2019-06-22 13:24 被阅读0次
    const map = new Map();
    map.set('1', 'one');
    map.set('2'. 'two');
    
    // 获取map对象的value数组
    Array.from(map).map(item => item[1]);
    // ['one', 'two']
    

    我们看看这段代码发生了什么
    Array.from执行map对象后返回一个二维数组,数组元素是map的键值数组,长度为2

    Array.from(map); // [['1', 'one'], ['2', 'two']]
    

    所以要是同样的方法用下面段可以获取map对象的key数组

    Array.from(map).map(item => item[0]);  // ['1', '2']
    

    二次更新

    空闲时间又对map对象尝试另一种方式

    基于map对象提供的values()函数
    values()返回一个MapIterator对象,可以调用values().next()方法依次获取value值,一次只能获取一次, 这里就不演示例子了,贴上MDN介绍网站 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/values
    这种方式可以直接获取map对象的value数组

    Array.from(map.values()) 
    // ['one', 'two']
    

    map对象还提供了keys()方法
    同样的下面这段代码可以获取map对象的key数组

    Array.from(map.keys())
    // ['1', '2'] 
    

    三更

    发现map对象也支持在数组中使用扩展运算符

    更直观简洁的表达方式

    [...map.values()]  // ['one', 'two']
    

    相关文章

      网友评论

        本文标题:(ES6以上以及TS) Map对象转数组

        本文链接:https://www.haomeiwen.com/subject/ecndqctx.html