// 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);
set数据类型 (与arr 数组的区别)
最新推荐文章于 2023-09-08 08:46:07 发布