Set和WeakSet数据结构

2019-08-08  本文已影响0人  Artifacts

Set的声明

let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "js"}

Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重。虽然Set很像数组,但是不是数组。

Set值的增删查

在使用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","前端"}
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进行值的查找,返回的是true或者false。

let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "web"}
 
console.log(setArr.has('js'));//true
let setArr = new Set(['js','你好','web','js']);
console.log(setArr);//Set {"js", "你好", "web"}
setArr.clear();
 
console.log(setArray);//true
let setArr = new Set(['js','你好','web','js']);
for (let item of setArr){
    console.log(item);
}
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 的时候就放入值,将报错。

上一篇 下一篇

猜你喜欢

热点阅读