ES6整理笔记

-----Set和Map数据结构

1.Set是什么

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set本身是一个构造函数,用来生成Set数据结构。

const myset = new Set();
[2,3,4,5,3,4,5,6].forEach(x=>myset.add(x));
for (let i of myset) {
	console.log(i);//2 3 4 5 6
}
//Set函数可以接受一个数组 去重
const array1 = [1,2,3,4,5,5,2,4,4]
const qc = new Set(array1);
console.log([...qc]);  //[1, 2, 3, 4, 5]
2.Set实例的属性和方法
const setArray = new Set([1,2,3,4,5,6]);
//Set.prototype.size:返回Set实例的成员总数。
console.log(setArray.size);//6
//Set.prototype.add(value):添加某个值,返回 Set 结构本身
const addArray = setArray.add(8).add(8).add(90); //逐个添加
console.log([...addArray])//[1, 2, 3, 4, 5, 6, 8, 90]
//Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。
console.log(addArray.has(7))  //false
//Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否
console.log(setArray.delete(3)) //true
console.log([...addArray]);//[1, 2, 4, 5, 6, 8, 90]
//Set.prototype.clear():清除所有成员,没有返回值。
addArray.clear();
console.log([...addArray]);//[]
3.Set遍历操作

Set.prototype.keys():返回键名的遍历器
Set.prototype.values():返回键值的遍历器
Set.prototype.entries():返回键值对的遍历器
Set.prototype.forEach():使用回调函数遍历每个成员

let set_bl = new Set(['小明','小刚','小红']);
for (let i of set_bl.keys()) {
	console.log(i);  //小明  小刚  小红
}
for (let i of set_bl.values()) {
	console.log(i);  //小明  小刚  小红
}
for (let i of set_bl.entries()) {
	console.log(i);  //["小明", "小明"] ["小刚", "小刚"]	["小红", "小红"]
}
//可以省略values方法,直接用for...of循环遍历 Set。
for(let i of set_bl){
	console.log(i);//小明  小刚  小红
}
4. Map是什么

JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。

//Map接受一个数组作为参数
const myMap = new Map([
	['name','小明'],
	['age',18]
]);
console.log(myMap.size);//2
console.log(myMap.has('name'));//true
console.log(myMap.get('age'));//18
5. Map实例的属性和方法,Map遍历操作

和上面set一样具有的方法

6. Map与其他数据结构的互相转换
//Map 转为数组  最方便的方法  使用扩展运算符
const myMap2 = new Map([
	['name','小明'],
	['age',18],
	['sex','男']
]);
console.log([...myMap2]);//0: (2) ["name", "小明"]1: (2) ["age", 18]2: (2) ["sex", "男"]
//将数组 转为 Map
var Array11 =[
  ['name','小明'],
  ['age',18],
];
const myMap3 = new Map(Array11);
console.log(myMap3);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值