Set的声明
let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "js"}
Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重
。虽然Set很像数组,但是不是数组。
Set值的增删查
- 追加
add
:
在使用Array的时候,可以用push进行追加值,那Set稍有不同,它用更语义化的add进行追加。
let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "web"}
setArr.add('前端');
console.log(setArr);//Set {"js", "你好", "web","前端"}
- 删除
delete
:
let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "web"}
setArr.add('前端');
console.log(setArr); //Set {"js", "你好", "web","前端"}
setArr.delete('前端');
console.log(setArr); //Set {"js", "你好", "web"}
- 查找
has
:
用has进行值的查找,返回的是true或者false。
let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "web"}
console.log(setArr.has('js'));//true
- 删除clear:
let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "web"}
setArr.clear();
console.log(setArray);//true
- set的循环 for…of…循环:
let setArr = new Set(['js','你好','web','js']);
for (let item of setArr){
console.log(item);
}
- forEach循环
let setArr = new Set(['js','你好','web','js']);
setArr.forEach((value)=>console.log(value));
WeakSet的声明
let weakObj=new WeakSet();
let obj={a:'js',b:'你好'}
weakObj.add(obj);
console.log(weakObj);
ps:直接在new 的时候就放入值,将报错。