ES6中的数据结构Set
原文链接:ES6中的数据结构Set
语法
new Set([iterable])
iterable
为Set的参数,它的所有元素将不重复地被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。
简述
通俗点来讲,Set相当于ES6规定的一个新的数组,并且Set中的元素是独一无二的
NaN
和undefined
都可以被存储在Set 中, NaN
之间被视为相同的值(尽管 NaN !== NaN)。
方法
添加元素add()
在Set对象尾部添加一个元素。返回该Set对象。
var arr= new Set();
arr.add(1)
arr.add(2)
console.log(arr) //Set(2) {1,2}
是否含有某元素has()
返回一个布尔值,表示该值在Set中存在与否。
var arr= new Set([1,2]);
console.log(arr.has(1)) //true
删除某个元素delete()
移除Set的中与这个值相等的元素
var arr= new Set([1,2]);
arr.delete(1);
console.log(arr) //Set(1) {2}
删除所有元素clear()
移除Set
对象内的所有元素。
var arr= new Set([1,2]);
arr.clear();
console.log(arr) //Set(0) {}
循环Set的方法
forEach
我们可以使用set.forEach(callback,thisArg)来遍历循环数组
按照插入顺序,为Set对象中的每一个值调用一次callBackFn。如果提供了thisArg
参数,回调中的this会是这个参数。
values
返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
keys
用法与values相同
entries
用法与values相同
属性
获取数组长度size
在Set中,length的属性值为0,若是想要获取数组的长度,我们需要使用size属性
var arr= new Set([1,2]);
console.log(arr.size) //2
使用
数组去重
使用set进行数组去重使我们常用的方法
var arr = [1,1,2,2,3,4,5,5]
arr = [...new Set(arr)]
console.log(arr) //[1, 2, 3, 4, 5]