认识map

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值