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'] // }