Set和WeakSet数据结构

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 的时候就放入值,将报错。

你可能感兴趣的:(Set和WeakSet数据结构)