ES6 Set 对象

Set 对象允许你'存储任何类型的唯一值',无论是原始值或者是对象引用。


创建Set对象

{
    let mySet = new Set();
    //add()方法,向Set对象中添加内容
    mySet.add(1); //可以是数字
    mySet.add('字符串');  //可以是字符串
    mySet.add(false);  //可以是布尔值
    mySet.add([1,2]);  //可以是数组
}

Set对象的唯一性

{

    let myset = new Set();
    myset.add(1);
    myset.add(2);
    myset.add(2);
    myset.add(3);
    console.log(myset);
    // 输出结果为1,2,3
}

对象之间引用不同不恒等,即使值相同,Set 也能存储

{

    let s1 = new Set();
    let obj = {id:'100',name:'san'};
    s1.add(obj);
    s1.add({id:'100',name:'san'});
    console.log(s1);
}

Set对象的迭代,遍历

{
    let s1 = new set();
    s1.add([1,2,3,4,5]);
    
    // for...of方法
    for(let item of s1){
        console.log(item)
    }

    // forEach()方法
    s1.forEach(function(v,k){
        console.log(v,'--',k)
    })
}

类型转换

{

    //数组转Set对象(直接往Set对象里面扔)
    let arr = [1,2,3,4];
    let Set = new Set(arr);
    console.log(Set);
    
    //Set对象转数组(用...操作符,也叫剩余运算符);
    let newarr = [...Set];
}

{

    //String转Set

    let str = 'hello yi';
    let set = new Set(str);
    console.log(set);

}

Set对象作用

数组去重

//先把数组放进Set对象中,在把Set对象转为数组
{
    
    let myset = new Set([1,1,1,2,2,4,5,6,6,4]);
    let myArr = [...myset];
    consloe.log(myset)
    
}

并集

{
    //把两个Set对象合并成一个对象(注意:并集时会自动去重)
    let s1 = new Set([1,2,3,4,5]);
    let s2 = new Set([2,3,5,6,7]);
    
    let s3 = new Set([...s1,...s2]);
    console.log(s3);
}

交集  (两个Set对象中是否有相同的内容,把相同的内容 “拎”出来,存放在一个新Set对象中)

{

    let s1 = new Set([1,2,3,4,5]);
    let s2 = new Set([2,3,4,5,6]);
    
    let s = new Set([...s1].filter(x => {return s2.has(x)}));
    console.log(s);

}

差集 (两个Set对象中, 取 “我” 里面 “你” 没有的内容 )

// !b.has(x) 注意 !是取反
{

    let s1 = new Set([1,2,3,5]);
    let s2 = new Set([2,3,4]);

    let s = new Set([...s1].filter(x => {return !s2.has(x)}));
    console.log(s);

}

{
    let s1 = new Set([1,2,3,4,5]);
    
    //检测set对象中的成员是否存在
    //has()方法--检查set对象中是否存在某个元素
    // 如果有则返回true,没有则返回flase
    
    console.log(s1.has(3));
    // 也可以用if语句判断
    if(s1.has(2)){
        console.log('存在')
    }else{
        console.log('不存在')
    }

    // size方法,查询Set对象中元素的个数
    consloe.log(s1.size);
    
    //delete()  方法,删除Set对象中的某一个元素
    // 如果删除成功则返回true,失败则返回flase
    console.log(s1.delete(2));

    // clear()方法,清空Set对象
    s1.clear();
    console.log(s1);
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值