Set和WeakSet的用法

  // 1、创建Set
    // var set = new Set()
    // console.log(set);
    // console.log(typeof set);
    // var set = new Set(1)
    // var set = new Set(false)
    //boolean false is not iterable
    /* 
       2、set的参数必须是可遍历的对象:
    */
    var set = new Set([10, 20, 30, 40])
    console.log(set);
    /*
     方法:
     1、add()使用add方法添加成员
     2、size属性:获取成员的个数。
     3、delete( )方法:用户删除Set结构中的指定值,删除成功返回:true,删除失败返回:fasle。
     4、clear( )方法:清除所有成员。
     5、has( )方法:判断set结构中是否含有指定的值。如果有,返回true;如果没有,返回fasle。
     6、entries( )方法:返回一个键值对的遍历器。
     7、keys( )方法:返回键名的遍历器。
        values( )方法:返回键值的遍历器。
     8、forEach( )方法:遍历每一个成员。
    */
    set.add(50)
    console.log(set);
    set.add(50)
    set.add(60)
    console.log(set);
    console.log(set.size);
    console.log(set.delete(10));
    console.log(set);
    console.log(set.delete(10));
    console.log(set);
    // set.clear()
    console.log(set);
    console.log(set.has(10));
    console.log(set.has(20));
    console.log(set.entries());
    for (let [key, value] of set.entries()) {
        console.log(key);
        console.log(value);
    }
    console.log(set.keys());
    console.log(set.values());
    set.forEach((item, index) => {
        console.log(item);
        console.log(index);
    })

    /*
    3、WeakSet结构同样不会存储重复的值,不同的是,它的成员必须是引用类型的值。
        WeakSet结构也提供了add( ) 方法,delete( ) 方法,has( )方法给开发者使用,
    */
    var set1 = new WeakSet([{ age: 1 }, set, [1, 2, 3]])
    console.log([1, 2] == [1, 2]);
    console.log(set1);
    set1.add([1, 2])
    var arr3 = [10, 20]
    set1.add(arr3)
    console.log(set1);
    // set1.delete(arr3)
    console.log(set1);
    // set1.delete(set1[0])
    // console.log(set1);
    console.log(set1.has(arr3));

   

数组去重:(重点)

 /*
    
    */
    // var arr = [1, 2, 3, 4, 1, 2]
    // var set1 = new Set(arr)
    // console.log(set1);
    // console.log([...set1]);
    // console.log(Array.from(set1));
    // console.log([...new Set(arr)]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值