ES6新增两种数据类型 Set( ) Set( )应用

Set()数据类型

Set()是一个无序且唯一的集合。它类似于数组,但是不允许重复的值。可以用来去除数组中的重复项或者检查某个值是否在集合中。

用法:new Set()

 let s = new Set();
 console.log(s);//Set(0)

常见方法:

add(  ) 向集合中添加元素。如果添加成功,返回set本身;否则,返回undefined。

  let s = new Set();
    s.add(10)
    s.add(20)
    s.add(30)
    console.log(s);//Set(3) {10, 20, 30}

 delete(   ) 从集合中删除元素。如果删除成功,返回true;否则,返回false

let s = new Set();
s.add(10)
s.add(20)
s.add(30)
console.log(s);//Set(3) {10, 20, 30}
s.delete(20);//
console.log(s);//Set(2) {10, 30}

 clear(   ) 清空set中所有元素。

        let s = new Set();
        s.add(10)
        s.add(20)
        s.add(30)
        console.log(s);//Set(3) {10, 20, 30}
        s.delete(20);//
        console.log(s);//Set(2) {10, 30}
        s.clear()//
        console.log(s);//Set(0) {size: 0}   size是set的自身属性

 forEach(   )  遍历集合中的所有元素并执行回调函数。回调函数有三个参数:value(当前元素的值)、key(当前元素的键,也是其值)和set(当前set)。

        let s = new Set();
        s.add(111).add(222).add(333);
        console.log(s.size);//3     返回数组长度
        s.forEach((v1, v2) => {
            console.log(v1, v2);// 111    111
                                // 222    222
                                // 333    333
        });
      

 has(   ) 判断集合中是否包含某个元素。如果包含,返回true;否则,返回false。

        let s1 = new Set();
        s1.add(10).add(222).add(333);
        console.log(s1.has(999));//false
        console.log(s1.has(10));//true

 keys(   )    values(   )   entries(   )  这三个方法分别返回一个迭代器对象,可以用来遍历集合中的所有键、所有值和所有键值对(实体)。

        let s = new Set();
        s.add(111).add(222).add(333);
        console.log(s.size);//3     返回数组长度
        s.forEach((v1, v2) => {
            console.log(v1, v2);// 111    111
                                // 222    222
                                // 333    333
        });
        console.log(s.keys());// SetIterator {111, 222, 333}
        console.log(s.values());// SetIterator {111, 222, 333}
        console.log(s.entries());// SetIterator {111 => 111, 222 => 222, 333 => 333}

 属性: size          

在ES6中,set对象有一个只读属性size,用于获取set对象中元素的数量。例如:

const mySet = new Set([1, 2, 3, 4, 5]);
console.log(mySet.size); // 输出 5

此外,由于size是一只读属性,不能直接修改它的值。

Set( )应用

数组去重

 // 数组出重
 function fn(arr) {
 let s = new Set(arr);
 console.log(s);//{1 2 3 e 4 f 5 6 }
 let s1 = Array.from(s);
 console.log(s1);//[1, 2, 3, 'e', 4, 'f', 5, 6]}
 fn([1, 2, 3, "e", 2, 4, "f", 1, 4, 5, 6, 3, 4])

set--->数组

        // set--->数组
        let s = new Set()
        s.add(10).add(20).add(30);
        console.log(s);//Set(3) {10, 20, 30}
        let arr = Array.from(s);
        console.log(arr);//(3) [10, 20, 30]

数组--->set

        //数组--->set
        let arr=[10,234,235,231,34]
        console.log(arr);//(5) [10, 234, 235, 231, 34]
        let s=new Set(arr);//Set(5) {10, 234, 235, 231, 34}
        console.log(s);
        arr.forEach(item=>{
            s.add(item)
        })
        console.log(s);//Set(5) {10, 234, 235, 231, 34}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值