set数据类型 (与arr 数组的区别)

// SET数据类型
// 是一个类似于数组的数据类型
// 特点 : 不接受 相同的数据的定义和赋值
//        相同的数据,在SET数据类型中只会存储一次

// 例如 数组类型 const arr = [1,1,1,1,2,2,2,3,3,3,4,4,4];
//      在数组中,可以存储重复的数值
//      之前还有 专门的 数组去重的语法
//      现在使用SET数据类型来存储,可以防止存储重复的数值数据


****SET 数据类型的语法*************************

// 通过 内置构造函数 Set() 来定义声明 SET数据类型
// set数据类型,有一个属性,size,就类似于 数组的 length 属性
// 表示 set 存储数据的长度,也就是单元个数
// 空set,size属性就是0

const set = new Set();   // 定义的一个空Set

// 定义set的同时,进行赋值
// 参数就是要赋值的数据,必须是一个数组
// 在数组中,可以定义所有JavaScript支持的数据类型

// set类型中,不接受重复的数据
// 重复的数值100,只会存储1次
const set = new Set([100,200.123,'北京',true,[1,2,3,4],function(){},100]);
console.log(set);

// set数值的调用
// 虽然 set类型 与数组很相似 也有 size 属性,表示长度,也有索引下标
// 但是不能通过索引下标,获取数据
// console.log(set[0]);   不能获取数据
// 要获取数据,要将 set 转化为 数组

// ... 是 解构符号,会将 set 中存储的单元,一一解构,赋值存储到 arr数组中
// 再通过数组,获取到set的具体数值
const arr = [...set];
console.log(arr);

***set类型的相关函数方法***************************

// 1, add()方法  向set类型中,新增数据单元

set.add('我是新增内容');


// 2, delete()方法  从set中删除数据单元
set.delete('我是新增内容');

// 3, clear()方法   清空set中的内容
set.clear()

// 4, 使用forEach 的方法,循环遍历SET数据类型
// 参数1,参数2,存储的都是 set 类型单元的数值数据
// 没有参数存储 set 类型的索引,因为这个索引没用
// set 类型 不能通过 索引直接调用数据
// 参数3,是set变量的原始数据内容

const set = new Set(['北京','上海','广州','重庆','天津']);
console.log(set)
// item 和 key 都是数值
set.forEach(function(item,key,three){
    console.log(item,key,three)
})

// console.log(set);

***set的小应用,数组去重**********************************
// 思路:将有重复数据的数组,赋值给set存储,去除重复数据之后,在转化为数组

const arr = [1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,4,3,4,4,4,4,4];

// 将 数组arr 中的数据, 解构之后,一一赋值给 set 数据类型
// set 会 自动解构 数组的数据 不用添加 ... 
// set 在 存储数值时,会除去掉重复的数值,相同数值,只会存储一个
const set = new Set(arr);

// 之后再将没有重复数据的 set 转化为数组
// 此时要解构 set 必须要添加 ...
const newArr = [...set];

// 也可以综合写成一行代码
const newArr = [...new Set(arr)];
console.log(newArr);

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值