ES6 Set数据结构

一、Set的基本用法
ES6提供的Set集合用于存储不重复的数据
Set本身是一个构造函数,用来生成 Set 数据结构。

const s = new Set();
s.add(1);
s.add(1);
console.log([...s]);//[1]

在上面代码中,创建了一个Set结构,然后通过add()方法向里面添加了两个相同的成员,最后输出的只有一个成员。
结果表明 Set 结构不会添加重复的值。

let obj = {
	a : 1,
	b : 2
}
const s = new Set(obj);//报错

在这里插入图片描述
当向Set集合中加入一个对象时,会抛出一个错误,提示类型错误(对象不具有iterable 接口)。
Set函数接受的参数必须具有 iterable 接口。

const s = new Set("abcdefg");
console.log([...s]);//["a", "b", "c", "d", "e", "f", "g"]

如果Set函数传入的参数的是一个原始值,则会将转换成字符串对象,再进行存储

二、Set实例的属性和方法
1.add()
添加某个值,返回 Set 结构本身。

const s = new Set();
s.add(1);
s.add(1);//无效添加

2.has()
返回一个布尔值,表示该值是否为Set的成员。

const s = new Set([1,2,3,4,5]);
s.has(1);//true
s.has(6);//false

3.delete()
删除某个值,返回一个布尔值,表示删除是否成功。

const s = new Set([1,2,3,4,5]);
s.delete(1);//true
s.delete(6);//false

4.clear()
清除所有成员,没有返回值。

const s = new Set([1,2,3,4,5]);
s.clear();
console.log([...s]);//[]

5.size
返回Set实例的成员总数。

const s = new Set([1,2,3,4,5]);
s.size;//5

6.forEach()
Set 结构的实例与数组一样,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值。

const s = new Set([1,2,3,4,5]);
s.forEach((item,index,s)=>{
    console.log(item,index,s)
})

在这里插入图片描述
从上面输出结果中可以看出Set结构中的forEach()方法被重写了,与数组的不同。
在Set集合中index不是下标,Set集合没有下标。
forEach中第一个参数和第二个参数的值是相同的,都代表Set集合中的每一项数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值