【前端】js中Map的用法

Map

Map是一组键值对结构,具有极快的查找速度。

1. 创建
  • 方法一:创建的时候初始化

    let mapObj = new Map([
    	['x', 1],
    	['y', 2],
    	['z', 3],
    ])
    
    console.log(mapObj.size) // 3
    
  • 方法二:创建空Map,之后添加元素

    let mapObj = new Map();
    mapObj.set('x', 1);
    mapObj.set('y', 2);
    mapObj.set('z', 3);
    
    // 注:Map对象的长度不是length,而是size。
    console.log(mapObj.size) // 3
    
2. 基础操作

Map对象的创建、添加元素、删除元素…

let mapObj = new Map();
mapObj.set('x', 1); // 添加元素
mapObj.delete('y'); // 删除指定元素
mapObj.has('x'); // true 是否存在x
mapObj.get('x'); // 1 取值
3. 遍历
  • forEach
    同数组的forEach遍历,三个参数分别代表:value、key、map本身。

    let mapObj = new Map();
    mapObj.set('x', 1);
    mapObj.set('y', 2);
    mapObj.set('z', 3);
    
    mapObj.forEach((value, key, self) => {
    	console.log(key,'=>', value)
    });
    /*
     输出结果:
     x => 1
     y => 2
     z => 3
    */
    
  • for-of

    let mapObj = new Map();
    mapObj.set('x', 1);
    mapObj.set('y', 2);
    mapObj.set('z', 3);
    
    // 注意:for-of遍历出来的是一个数组,其中item[0]为key,item[1]为value。
    for (const item of mapObj) {
    	console.log(item);
    }
    /*
     输出结果:
     ["x", 1]
     ["y", 2]
     ["z", 3]
    */
    
4. 应用
  • 去重

    let map = new Map();
    
    for (let i = 0; i <= 9; i++) {
    	map.set(i, i);
    }
    
    for (let j = 6; j <= 12; i++) {
    	map.set(j, j);
    }
    
    console.log(map.size);// 13
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值