ES6 集合 Set()

ES6 集合 Set()

概念:一个标识符,存储多个数据(没有全等的重复值)

特点:数据不可重复(全等)

1.创建集合的方式
let set = new Set();
console.log(set);  Set(0) {}

集合用{}表示

let obj = new Object();
console.log(obj);  //{}
【集合的方法和属性】
2.属性
  1. 集合的长度size

    书写格式:集合.size

    返回值:集合存储数据的个数

    console.log(set.size);
    
3.方法
  1. 添加.add()

    书写格式:集合.add(添加的数据)

    返回值:添加数据后的集合(即返回改变集合的内容)

    let temp = set.add(1);
    console.log(temp);  //返回一个集合里面存的1;
    

    链式调用

    //链式调用(全等匹配)
    //全等的数据,无法重复存储
    set.add(1).add('a').add(1).add('b').add('1');
    console.log(set);  //Set(4) { 1, 'a', 'b', '1' }
    console.log(set.size);  //4
    
  2. 删除.delete()

    书写格式:集合.delete(删除的数据)

    返回值:Boolean(删除成功返回true,反之false)

    set.delete("1");
    console.log(set);  //Set(3) { 1, 'a', 'b' } 
    
  3. 清空数组.clear()

    书写格式:集合.clear()

    set.clear();
    console.log(set.size);
    
  4. 查找.has()

    书写格式:集合.has(查找的内容)

    返回值:Boolean

    console.log(set.has(1));   //true
    console.log(set.has(0));   //false
    
4.遍历集合的键值对 keys values entries

证明键名键值是同一个东西

for (let item of set.entries()) {
    console.log(item);
}
/* 
[ 1, 1 ]
[ 'a', 'a' ]
[ 'b', 'b' ]
[ undefined, undefined ]
*/

获取键名

for(let key of set.keys() ){
    console.log(key);
}
/* 
1
a
b
undefined
*/

获取键值

for(let value of set.values() ){
    console.log(value);
}
/* 
1
a
b
undefined
*/
5.集合与数组的相互转换

集合转数组

let arr = [...set];   
console.log(arr);   //[ 1, 'a', 'b' ]
arr.push(undefined);

数组转集合

set = new Set(arr);
console.log(set);    //Set(4) { 1, 'a', 'b', undefined }
6.使用场景(给数组去重)
let arr1 = [1,2,3,5,6,1,2,3,2,3,1,2,3,9,2,3,2,5];
let set1 = new Set(arr1);
arr1 = [...set1];
console.log(arr1);   //[ 1, 2, 3, 5, 6, 9 ]
7.遍历输出键名+键值
let arr = ['A','B','C'];
for(let index in arr){
    console.log(index,arr[index]);
}
/* 
0 1
1 a
2 b
*/
8.随机数去重
let pcNum = new Set();
while (pcNum.size < 4) {
    let = ranNum = parseInt(Math.random() * 9) + 1;
    pcNum.add(ranNum);
}
console.log(pcNum);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值