当前位置:网站首页>认识map

认识map

2022-06-25 22:40:00 ivanfor666

/* * 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()

原网站

版权声明
本文为[ivanfor666]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_36411712/article/details/119278121