Set类型

Set基本用法

  • Set是ES6提供的新的数据结构
  • 类似于数组
  • 成员是唯一的,没有重复的值

初始化

// 新建一个Set变量
const s = new Set();
// 初始化,add方法往set中添加元素
[2, 3, 5, 4, 5, 2, 2].forEach(x=>s.add(x));

set中的重复问题

// 新建set时接收一个数组作为参数
const set = new Set([1, 2, 3, 4, 4]); //{1, 2, 3, 4}
var arr = [...set]; // [1, 2, 3, 4] type:object
// set中的NaN等于自身,即重复
let set3 = new Set();
let a = NaN;
let b = NaN;
set3.add(a).add(b);//{NaN}
// set中对象总是不等
let set4 = new Set();
set4.add({}).add({});// {{}, {}}

set常用方法

const set = new Set();
set.add(1).add(2);// { 1, 2 }
// 判断在set中是否包含某个值
var flag = set.has(1);//true
// 删除某个元素
set.delete(1);//set : { 2 }
// 在set中键名=键值
// 键名
var key = set.keys();// { 1, 2 }
// 键值
var val = set.values();// { 1, 2 }
// 键值对
var entries = set.entries();//{ [ 1, 1 ], [ 2, 2 ] }
// 遍历
// for循环
for (let item of set) {/*数据处理*/ };
// forEach方法
set.forEach((item, index) => {/*数据处理*/ });

与数组相关操作

// set转为数组
const set = new Set([1, 2, 3, 4]);
const arr = Array.from(set);// [1, 2, 3, 4]
// 数组去重
const newArr = Array.from(new Set(arr));
// 通过 ... 运算转换为逗号分隔的序列
// map方法
// 通过map方法将数组映射为新数组
const newArr1 = Array.from(new Set([...set].map(o => o * 2))); console.log([...set]);
// filter方法
// 通过filter方法返回过滤后的数组
const newArr2 = Array.from(new Set([...set].map(o => o >= 1))); console.log([...set]);
posted @   starkss  阅读(7)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示