美文网首页
ES6Set和WeakSet数据结构

ES6Set和WeakSet数据结构

作者: 阳光之城alt | 来源:发表于2018-08-11 10:16 被阅读0次
image.png
// Set数据结构,注意这里不是数据类型,而是数据结构
// Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,
// 相当于去重。虽然Set很像数组,但是他不是数组。

let s=[2,3,4,5,6,6,6,5,7]
let st=new Set(s);
console.log(st)

let setArr1 = new Set(['jspang','技术胖','web','jspang']);
console.log(setArr1);//Set {"jspang", "技术胖", "web"}
// 追加add:
setArr1.add('前端职场');
console.log(setArr1);


let setArr = new Set(['jspang','技术胖','web','jspang']);
console.log(setArr);//Set {"jspang", "技术胖", "web"}
// 删除delete:
setArr.add('前端职场');
console.log(setArr); //Set {"jspang", "技术胖", "web", "前端职场"}
 
setArr.delete('前端职场');
console.log(setArr); //Set {"jspang", "技术胖", "web"}


// 用has进行值的查找,返回的是true或者false。
let setArr2 = new Set(['jspang','技术胖','web','jspang']);
console.log(setArr2);//Set {"jspang", "技术胖", "web"}
 
console.log(setArr2.has('jspang'));//true

// set的循环 for…of…循环:
let setArr3 = new Set(['jspang','技术胖','web','jspang']);
for (let item of setArr3){
    console.log(item);
}

// size属性可以获得Set值的数量。
let setArr4 = new Set(['jspang','技术胖','web','jspang']);
for (let item of setArr4){
    console.log(item);
}
 
console.log(setArr4.size);

// forEach循环
let setArr5 = new Set(['jspang','技术胖','web','jspang']);
setArr5.forEach((value)=>console.log(value));

// WeakSet的声明 这里需要注意的是,如果你直接在new 的时候就放入值,将报错。
let weakObj=new WeakSet();
let obj={a:'jspang',b:'技术胖'}
weakObj.add(obj);
 
console.log(weakObj);

// WeakSet里边的值也是不允许重复的,我们来测试一下。
let weakObj2=new WeakSet();
let obj2={a:'jspang',b:'技术胖'}
let obj1=obj2;
 
weakObj2.add(obj2);
weakObj2.add(obj1);
 
console.log(weakObj2);



相关文章

网友评论

      本文标题:ES6Set和WeakSet数据结构

      本文链接:https://www.haomeiwen.com/subject/xagrbftx.html