一、set的声明
js中使用new Set()
来声明set:
var a = new Set(["v1"]);
console.log(a);//Set(1) {"v1"}
a.add("v2");
console.log(a);//Set(2) {"v1", "v2"}
console.log(typeof a);//object
console.log(Object.prototype.toString.call(a));//[object Set]
二、set操作
使用add()
方法向set中添加元素,使用delete()
方法来删除set中的元素,使用has(key)
来判断是否包含某个值,使用clear()
来清空 set:
var a = new Set([1, 2, 3, 4]);
console.log(a);//Set(4) {1, 2, 3, 4}
a.has(2); // true
a.add(5);
console.log(a)//Set(5) {1, 2, 3, 4, 5}
a.delete(3);
console.log(a);//Set(4) {1, 2, 4, 5}
a.clear();
console.log(a); // Set(0) {size: 0}
三set的循环
尝试for in
、for of
、forEach
是否可以作用在set身上:
var a = new Set([1, 233, 3, "fafdsff"]);
console.log(a);//Set(4) {1, 2, 4, 5}
for(var v of a){
console.log(v);
}
//无反应
for(var k in a){
console.log(k);
}
//v与k是同一个值
a.forEach((v, k) => {
console.log("v: " + v +" k:" + k);
});
上面的示例可以看出,对于set来说,for of
和forEach
方法都是可以的。