Set
Set
对象允许你存储任何类型(无论是原始值还是对象引用)的唯一值。集合(set)中的元素只会出现一次,你可以按照插入顺序迭代集合中的元素。
声明set的方法
let set = new Set([1,2,3,4,5]);
set和array还有object的区别
set内对数据的唯一性的判断是严格模式判断,也就是说字符串'1'和数字1是不一样的
但是在对象里会被判定为一样,也就是字符串'1'和数字1是一样的:
let obj = {
1: "hdcms",
"1": "houdunren"
};
console.log(obj);//1:"houdunren"
同样的属性名会被后面的覆盖,所以打印不出前面的属性值
注意在对象里,如果属性名是一个对象的话,要加中括号
加中括号以后,对象名会被所属对象识别为一个字符串,所以此时想访问这个【对象里的对象】就需要在访问的时候把对象转为字符串:
let obj = {
1: "hdcms",
"1": "houdunren"
};
console.log(obj);
let hd = {
[obj]: "后盾人"
};
console.log(hd[obj.toString()]);
set储存的内容顺序:对于 add() 方法来说,就是调用 add()
方法时集合中不存在相同的元素的顺序,相同的就插不进去
let set = new Set();
set.add(1); // 成功插入 1
set.add(2); // 成功插入 2
set.add(1); // 1 已经存在,不会插入
set.add(3); // 成功插入 3
console.log(set); // 输出: Set { 1, 2, 3 }
Set元素检测与管理
set.size:返回set的大小
let set = new Set([1, 2, 3, 4, 5])
console.log(set.size)//5
set.has():判断是否有某个元素
let set = new Set([1, 2, 3, 4, 5])
console.log(set.has(1))//true
set.delete:删除元素,并且返回一个bool值,代表删除是否成功
let set = new Set([1, 2, 3, 4, 5])
console.log(set.delete(1))//true,删掉了
console.log(set.has(1))//false,没有1
console.log(set.size)//大小为4
set.values()也可以检测
console.log(set.values())//SetIterator {2, 3, 4, 5}
set.claer()清空元素,无返回值
console.log(set.clear())//清空ÿ