ES6新增的数据结构Set和WeakSet

一、Set

ES6提供了新的数据结构Set,Set对象不是真正的数组,Set对象是一个伪数组,可以用Array.from()方法把Set对象转化为真正的数组。 可以用来保存复杂数据类型(Object)或者基本数据类型, 所有保存的值都是唯一的。 (Set是一种可遍历的集合对象,可以和数组进行比较理解)

Set对象下面的方法:

add(value):添加某个value到Set对象里面,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,true表示删除成功。
has(value):返回一个布尔值,表示参数value是否为Set的成员。
clear():清除Set中所有成员,没有返回值。
keys():返回一个键名的遍历器
values():返回一个键值的遍历器
entries() :返回一个键值对的遍历器
forEach():使用回调函数遍历每个成员
.size:获取Set结构的长度

1、Set本身是一个构造函数,用来生成Set数据结构
let set1 = new Set();
set1.add(1);
set1.add("winne");
set1.add(2);

console.log(set1); // {1, "winne", 2}
console.log(set1.size);  // 3
2、带参数的初始化 ,可用于数组去重
let arr = [1,2,3,1,4,2,"1"];
let set2 = new Set(arr);
console.log(set2); // {1, 2, 3, 4, "1"}
let arr_unique = Array.from(set2);
console.log(arr_unique); // [1, 2, 3, 4, "1"]
二、WeakSet

参考资料:https://www.cnblogs.com/diligenceday/p/5479076.html#_label4

WeakSet其实就是弱类型的Set。
WeakSet对象是一些对象值的集合, 并且其中的每个对象值都只能出现一次,WeakSet只能存对象类型的元素,比如:Object, Array, Function 等等;有了弱引用的WeakSet, 就不用担心内存泄漏了,如果别的对象不引用该对象, 这个对象会被垃圾回收机制自动回收;

WeakSet对象的方法只有三个,而且WeakSet对象没有.size属性;
  add(value)
  delete(value)
  has(value)

这三个方法的使用方式都和Set一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值