ES6新增的 Set 和 WeakSet 是什么玩意?在此揭晓

本文介绍了ES6中的Set和WeakSet数据结构。Set是一个存储不重复值的集合,支持添加、删除、检查成员以及遍历操作。WeakSet与Set类似,但成员必须是对象且不支持遍历,成员引用是弱引用,便于垃圾回收。通过Set,可以便捷地实现数组去重功能。
摘要由CSDN通过智能技术生成

现在的章节内容会更加的紧密,如果大家看不懂可以先去看以前的文章,当然看了的忘了,也可以去看一下,这样学习后面的内容才会更加容易.

什么是Set结构

Set是ES6给开发者带来的一种新的数据结构,你可以理解为值的集合。我们平时见到的数组Array也是一种数据结构,但是Set跟其他数据结构不同的地方就在于:它的值不会有重复项

基本用法

我们从最基本的学起,Set的用法:

     var s = new Set();
     console.log(s);
     //打印结果:Set {}

Set本身是一个构造函数,你可以理解为一个类,使用的时候需要用new来创建一个实例。以上的案例就是这样创建出一个Set结构,我们打印出来看看,控制台输出:Set{ }。

它不是值的集合吗,那如果我们想给Set对象增加一些值成员,我们要怎么做?

你可以这样:

     var s = new Set([1,2,3]);
     console.log(s);
     //打印结果:Set {1, 2, 3}

案例中,用数组[ 1,2,3 ]作为参数传入,得到的变量s为Set { 1, 2, 3 }。

除了上面的方法,你还可以这样:

     var s = new Set();
     //使用add方法添加成员
     s.add(1);
     s.add(2);
     s.add(3);
     console.log(s);
     //打印结果:Set {1, 2, 3}

如果你不想用数组作为参数来传值初始化变量s,你还可以通过Set 结构提供的add方法来添加方法,也是没问题的。

成员值唯一

不过,为Set 结构添加成员值的时候,要注意一点是,set结构的成员值是没有重复的,每个值都是唯一的,如果人为地给它添加相同的成员值,会发生什么呢?

试试不就知道了嘛:

     var s = new Set();
     s.add(1);
     s.add(1);
     console.log(s);
     //打印结果: Set {1}
  

很明显,set结构会自动忽略相同的值,只会保留一个相同的值

Set 结构除了提供add方法用于添加成员以外,还提供了哪些方法和属性呢?

size属性

size属性:获取成员的个数

     l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值