ES6(三)--数据结构Set
Set
是ES6
新的数据结构,类似于数组,但是Set
成员的值都是唯一的,没有重复的值,key
和value
相同
创建一个Set
//参数是一个数组
const s = new Set([1, 2, 3, 4]);
Set的属性
Set
的属性只有一个size
,类似于数组的length
;
console.log(s.size);//4
Set的方法
1.Set.add(value)
:给Set
集合添加数据,返回Set
本身
2.Set.delete(value)
:删除指定的数据,返回一个布尔值,判断删除是否成功
3.Set.has(value)
:判断该值是不是Set
集合里面的成员,返回布尔值
4.Set.clear()
:清除所有的数据,没有返回值
const s = new Set([1, 2, 3, 4]);
s.add("a");
console.log(s.size);//5
console.log(s.delete(1));//true
console.log(s.size);//4
console.log(s.has(2));//true
s.clear();
console.log(s.size);//0
s.add(1).add("a").add(2);
console.log(s.size);
Set遍历
1.keys()
:返回一个键名的遍历器
2.values()
:返回一个键值的遍历器
3.entries()
:返回一个键值对的遍历器
4.forEach()
:使用回调函数遍历每个成员
const s = new Set([1, 2, 3, 4]);
for (let item of s.keys()) {
console.log(item);
}
//1 2 3 4
for (let item of s.values()) {
console.log(item);
}
//1 2 3 4
for (let item of s) {
console.log(item);
}
//1 2 3 4
for (let item of s.entries()) {
console.log(item);
}
//[1,1]
//[2,2]
//[3,3]
//[4,4]
s.forEach(function (key, value, set) {
console.log(key);
console.log(value);
console.log(set)
});
总结
1.keys()
方法和values()
方法遍历是一样的,因为Set
集合的key
和value
相同,这一点在用entries()
方法遍历的时候可以知道
2.Set
集合本身就可以使用for of
循环遍历,和keys()
,values()
方法相同
3.forEach
方法接受一个回调函数,回调函数接受三个参数,key
,value
和Set
集合本身