ES6个人笔记记录——Set数据结构

类似于数组,但是成员的值都是唯一的,没有重复

const s = new Set();
[2,3,1,2,5,6,7].forEach(x => s.add(x));
console.log(s);
for(let sv of s){
	console.info(sv);
}
console.log([...s],s.size);

去除数组中的重复元素

因为向Setj加入值不会发生类型转换
所以5和'5'是l两个不同的值
Set内部判断是否相等是采用"Same-value equality"
类似于精确相等运算符"==="
主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身
const arr1 = [1,"1",2,3,4,3,4,5,6,7,6,7,8,9];
console.log("数组去重方法1:",...new Set(arr1));

Set四个方法

add(value)
delete(value)
has(value)
clear()

Array.from()方法可以将Set结构转为数组

//数组去重
console.log("数组去重",Array.from(new Set(arr1)));

遍历操作

/*
	遍历操作
	键名和键值是同一个值
	keys(),values(),entries(),forEach()
 */
for(let x of s.entries()){
	console.log(x);
}

forEach

let set1 = new Set([1,2,3]);
set1.forEach((value,key) => console.log(value * 2));

遍历的应用

let set2 = new Set([1,1,2,3]);
console.log(...set2)

let set3 = new Set([...set2].map(x => x**2));
console.log("map",set3);

let set4 = new Set([...set2].filter( x => x > 2));
console.log("filter",set4);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值