美文网首页
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