/* * Map * * * */
let myMap = new Map();
let keyObj = {};
myMap.set(keyObj, "和键keyObj关联的值");
myMap.size;
// 1 myMap.get(keyObj);
// "和键keyObj关联的值" myMap.get({});
// undefined, 因为keyObj !== {}
// 遍历Map
for (var [key, value] of myMap) {
console.log(key + " = " + value);
}
for (var key of myMap.keys()) {
console.log(key);
}
for (let value of myMap.values()) {
console.log(value);
}
Array.from(myMap); // [[key,value]] Array.from(myMap.keys())
// 复制或合并 Maps
let one = new Map([[1, 'one'], [2, 'two'], [3, 'three'],]);
new Map(one);
// 浅克隆
let first = new Map([[1, 'one'], [2, 'two'], [3, 'three'],]);
let second = new Map([[1, 'uno'], [2, 'dos']]);
// 合并两个Map对象时,如果有重复的键值,则后面的会覆盖前面的。
// 展开运算符本质上是将Map对象转换成数组。
let merged = new Map([...first, ...second]);
console.log(merged.get(1));
// uno console.log(merged.get(2));
// dos console.log(merged.get(3)); // three
// 请注意!为Map设置对象属性也是可以的,但是可能引起大量的混乱。
let wrongMap = new Map()
wrongMap['bla'] = 'blaa'
wrongMap['bla2'] = 'blaaa2'
console.log(wrongMap) // Map { bla: 'blaa', bla2: 'blaaa2' }
// Map 中的 key 是有序的。因此,当迭代的时候,一个 Map 对象以插入的顺序返回键值。
// 利用Map 去重
var map = new Map;
[1, 1, 22, 33, 22, 33, 11, 1].forEach(item => map.set(item, true));
map.keys()
认识map
最新推荐文章于 2024-08-08 16:10:15 发布