Es6 map 对象的迭代(遍历)与操作 查找成员是否存在has()和删除成员

本文介绍了如何使用ES6的Map对象进行遍历,包括for...of和forEach方法。同时,讲解了Map的相关操作,如转换为Array、克隆、合并以及成员的查找与删除。通过has()方法可以检测成员是否存在,delete()用于删除指定成员,而clear()则用于删除所有成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Map 进行遍历,以下两个最高级。

for...of   


    let a = new Map();
    a.set(0, '发');  
    a.set(1, '黄飞');  
    a.set(2, '黄鸿');    
    a.set(3, '飞鸿');
    // 将会输出4个结果。
    0 --------------- 发
    1 --------------- 黄飞
    2 --------------- 黄鸿
    3 --------------- 飞鸿
    for (let [key, value] of a) {
        console.log(key, '---------------', value);
    }

     //keys()是对键名的遍历,values()是对键值的遍历


    for (let key of a.keys()) {
        console.log(key);      // 获取键名   
    }

    for (let value of a.values()) {
        console.log(value);    // 获取键值
    }

forEach()

​

    let a = new Map();
    a.set(0, '发');  
    a.set(1, '黄飞');  
    a.set(2, '黄鸿');    
    a.set(3, '飞鸿');
    // 将会输出4个结果。
    0 --------------- 发
    1 --------------- 黄飞
    2 --------------- 黄鸿
    3 --------------- 飞鸿
    for (let [key, value] of a) {
        console.log(key, '---------------', value);
    }

   //es5写法
    a.forEach(function (value, key) {
        console.log(value + "=" + key);//获取键值等于的键名
    })
    //es6写法
     a.forEach((v, k) => {
        console.log(v + "=" + k);//获取键值等于的键名
    });
 

​

2.Map 对象的操作

    // Map 与 Array的转换   

// 1.数组转map对象
//首先创建一个二维数组,将创建好的二维数组放入map对象中,然后输出查看 
let re = [
        ['naem', '发哈'],
        ['pwd', '123456'],
        ['age', 20]
    ]
    let re1 = new Map(re);
    console.log(re1);
 


// 2.map对象转数组
// 使用 Array.from 函数可以将一个 Map 对象转换成一个二维键值对数组
   
    let re2 = Array.from(re1);
    console.log(re2);

Map 的克隆

     //首先创建一个map对象,用set往里添加键名和键值,
     //然后在创建一个空的map对象,将创建好好的map对象放入新创建的空map对象中
     //console输出在控制台查看

    let a =new Map();
    a.set(0,'wda');
    a.set(1,'af');
    let a1 = new Map(a);
    console.log(a1);
    //输出结果为{ 0 => 'wda', 1 => 'af' }

map 的合并

//创建两个map对象, 


let b = new Map();
    b.set(0, '打完');
    b.set(1, '啊发');
    let b1 = new Map()
    b1.set(2, '安抚');
    b1.set(3, '阿发');
//用 "剩余运算符 ..." 将两个对象放入数组中合并
//注:输入的键名相同,后面的会将前面的键值覆盖;
    let b2 = new Map([...b, ...b1]);
    console.log(b2);
//Map 的键值对个数可以从 size 属性获取
//获取合并后的map对象的个数
    console.log(b2.size);

map中的查找 ,删除

// map中的has()方法 检测成员是否存在

  let b = new Map();
    b.set(0, '打完');
    b.set(1, '啊发');
 //查找有没有30这个成员存在
    if (b.has(30)) {
        console.log("有");
    } else {
        console.log("没有");
    }
 //结果没有

 // map对象中的delete(key):删除指定成员     // map对象中的clear:删除所有成员

​
//创建两个map对象, 


let b = new Map();
    b.set(0, '打完');
    b.set(1, '啊发');
 //删除键名为1的
  b.delete(1);
   console.log(b);     //{ 0 => '打完' }


//删除所有
 b.clear();
 console.log(b);     //{}


​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值