首页 > 技术文章 > js中的Map对象

150536FBB 2019-09-19 12:00 原文

            var map = new Map();
//map对象中添加键值对 map.set("name","tom"); map.set("age",35); map.set("sex",0); //获取map对象中的值 map.get("name")//tom //遍历map 函数中第一个参数是value,第二个参数是key

        map.forEach(function (value, key) {
          console.log(value, key);
        })


 ES6中的Map结构

const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');

for (let [key, value] of map) {
  console.log(key + " is " + value);
}
// first is hello
// second is world

//只获取key
for (let [key] of map) {
  // ...
}
//只获取key
for (let [, value] of map) {
  // ...
}

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"

 

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

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

[...map.keys()]
// [1, 2, 3]

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

[...map.entries()]
// [[1,'one'], [2, 'two'], [3, 'three']]

[...map]
// [[1,'one'], [2, 'two'], [3, 'three']]

数组结构转为Map结构,将数组传入 Map 构造函数,就可以转为 Map。

new Map([
  [true, 7],
  [{foo: 3}, ['abc']]
])
// Map {
//   true => 7,
//   Object {foo: 3} => ['abc']
// }

 

推荐阅读