ES6——02(Map&&Set)

本文详细介绍了JavaScript中的Map和Set对象,包括它们的创建、赋值、取值以及常用操作,如合并、去重等。通过实例展示了如何使用Map的键值对存储与查找,以及Set的唯一值特性进行数据处理。此外,还探讨了Map和Set在实际开发中的应用场景和优势。
摘要由CSDN通过智能技术生成

Map对象

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

语法

key为String类型

 let hm=new Map();
赋值set()

当有相同键时会进行覆盖

	hm.set('st01','temo');
    hm.set('st02','JS');
    hm.set('st03','Java');
    hm.set('st01','碰磕');//覆盖
取值get(键)
console.log("大小="+hm.size);//3
console.log(hm.get('st01'));//取值(碰磕)    
for…of取值

利用数组解构

//for...of
    for (const [key,val] of hm) {       //[key,val]数组解构
        console.log(key);//键
        console.log(val);//值
    }
for…each遍历
 //for...each遍历
    hm.forEach((val,key) => {   //值,键
        console.log("key="+key+",value="+val);
    });

key为对象时
对象地址不同导致取不到

 //key=对象
    let hm2=new Map();
    let js={};
    let pk={name:'碰磕',age:18};
    hm2.set(js,'这是个空值');
    hm2.set(pk,'这是个pk对象');
    console.log(hm2.get(js));
    console.log(hm2.get({}));//地址不同,所以取不到
    console.log(hm2.get(pk));

Map对象的操作

把map变成二维数组(Array.form())
	let arr=Array.from(hm);
    console.log(arr);
    console.log(arr[0][1]);
合并map

利用…操作符展开合并

	let a=new Map([['timi','提米'],['js','杰斯'],['pk','碰磕']]);
    let b=new Map([['xm','小明'],['xh','小红']]);
    let c=new Map([...a,...b]);//利用...操作符展开合并
    console.log(c);

Set对象

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

语法

 var s1=new Set();
赋值add()
	s1.add("张三");
    s1.add("李四");
    s1.add("王五");
取值
	for (const item of s1) {
        console.log(item);  // 取值
    }

Set对象的操作

set与Array之间的转换

array转set

	let arr=['a','b','c','a'];
    let s2=new Set(arr);
    console.log(s2);//a,b,c 去重复

set转array

	//set转array
    var arr1=[...s2];
    console.log(arr1);//数组[a,b,c]
作用(去重、并集、交集、差集)

去重、并集表示唯一性

案例
	//两个集合
    let high=new Set(['张三','李四','王五','赵六']);
    let mi=new Set(['碰磕','李四','赵六']);

    //合并
    let hb=new Set([...high,...mi]);
    console.log(hb);
    //交集
    let jiao=new Set([...high].filter(x => mi.has(x)));
    console.log(jiao);
    //差集
    let cha=new Set([...high].filter(x => !mi.has(x)));
    console.log(cha);

Es6中Map和Set的练习应用完结~
欢迎评论,积极讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碰磕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值