es6提供了新的数据结构,它类似数组,但是成员都是唯一的,没有重复的值(可以用来解决数组去重)!
1、Set本身是一个构造函数,用来生产Set数据结构(可以通过add方法添加数据,size方法判断长度)
var s = new Set();
[2, 3, 5, 4, 5, 2, 2].map(x => s.add(x));
for (let i of s) {//set结构数据遍历方法
console.log(i);
}
// 2 3 5 4 //去掉了重复的值
2、Set构造函数可以接收一个数据或者类数组的对象作为参数,用来初始化
let a=new Set([1,2,3,4,5]);//数组入参
function b(a,b,c){
let x=new Set(arguments);//类数组对象入餐
}
3、注意在Set结构内部,默认两个NaN是相等的
4、Set结构数据操作方法分为两大类,操作方法和遍历方法
操作方法
add(value)
:添加某个值,返回Set结构本身。delete(value)
:删除某个值,返回一个布尔值,表示删除是否成功。has(value)
:返回一个布尔值,表示该值是否为Set
的成员。clear()
:清除所有成员,没有返回值。- Array.from()方法可以把Set结构数据转数组
- [...a]方法也可以将Set结构数据转数组
Set结构的实例有四个遍历方法,可以用于遍历成员。
keys()
:返回一个键名的遍历器values()
:返回一个键值的遍历器entries()
:返回一个键值对的遍历器forEach()
:使用回调函数遍历每个成员
let set = new Set(['red', 'green', 'blue']);
for (let item of set.keys()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.values()) {
console.log(item);
}
// red
// green
// blue
for (let item of set.entries()) {
console.log(item);
}
// ["red", "red"]
// ["green", "green"]
// ["blue", "blue"]