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集合本身