set
类似于数组,但是成员都是唯一的,没有重复值。
set是构造函数,使用时需要new。
方法:
add(item)
作用:向set结构中新增成员,一次只能加一个,返回值为set。
let set=new Set();
set.add(1).add(2).add(3).add(1);
console.log(set);//Set(3) {1, 2, 3}
clear()
作用:清空集合。
let set=new Set();
set.add(1).add(2).add(3).add(1);
set.clear();
console.log(set);//Set(0) {}
delete(item)
作用:删除指定元素。
let set=new Set();
set.add(1).add(2).add(3).add(1);
srt.delete(2)
console.log(set);//Set(2) {1, 3}
has(item)
作用:判断set中是否包含item,返回值为布尔类型。
let set=new Set();
set.add(1).add(2).add(3).add(1);
console.log(set.has(1));//ture;
属性:
size 成员个数。
应用实例:
// 数组去重
let uniqArr=arr=>Array.from(new Set(arr))
console.log(uniqArr([1,1,1,1,5,5,5,6,2,3,3]))
set的遍历
注:set的key与value是相同的。
方法:
keys() 作用:获取所有的键。
values() 作用:获取所有的值。
//keys()遍历
let set=new Set([10,20,30]);
let ks=set.keys();//键
//遍历键
for(let key of ks){
console.log(key);
}
//values()遍历
let set=new Set([10,20,30]);
let vs=set.keys();//值
//遍历键
for(let value of vs){
console.log(value);
}
entries() 实体 //entries()也可以遍历。
注:另外set也可以用forEach,for…of遍历。