当前位置: 首页 > news >正文

【ES6复习笔记】集合Set(13)

ES6 提供了新的数据结构 Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了iterator接口,所以可以使用『扩展运算符』和『for…of…』进行遍历。

集合的属性和方法

  1. size:返回集合的元素个数。
  2. add(value):增加一个新元素,返回当前集合。
  3. delete(value):删除元素,返回boolean值。
  4. has(value):检测集合中是否包含某个元素,返回boolean值。
  5. clear():清空集合,返回undefined。

1. 集合的基本操作

在 JavaScript 中,集合(Set)是一种数据结构,它可以存储任意类型的唯一值。以下是一些基本操作的示例:

// 声明一个 set
let s = new Set();
let s2 = new Set(['大事儿', '小事儿', '好事儿', '坏事儿', '小事儿']);// 元素个数
console.log(s2.size); // 输出: 5// 添加新的元素
s2.add('喜事儿');
console.log(s2); // 输出: Set(6) {"大事儿", "小事儿", "好事儿", "坏事儿", "喜事儿"}// 删除元素
s2.delete('坏事儿');
console.log(s2); // 输出: Set(5) {"大事儿", "小事儿", "好事儿", "喜事儿"}// 检测
console.log(s2.has('糟心事')); // 输出: false// 清空
s2.clear();
console.log(s2); // 输出: Set(0) {}

2. 集合的遍历

可以使用 for...of 循环来遍历集合中的元素:

for(let v of s2){console.log(v);
}

3. 集合的实践应用

集合在实际开发中有很多应用,例如数组去重、求交集、并集和差集等。以下是一些示例:

let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];// 1. 数组去重
let result = [...new Set(arr)];
console.log(result); // 输出: [1, 2, 3, 4, 5]// 2. 交集
let arr2 = [4, 5, 6, 5, 6];
let result = [...new Set(arr)].filter(item => new Set(arr2).has(item));
console.log(result); // 输出: [4, 5]// 3. 并集
let union = [...new Set([...arr,...arr2])];
console.log(union); // 输出: [1, 2, 3, 4, 5, 6]// 4. 差集
let diff = [...new Set(arr)].filter(item =>!(new Set(arr2).has(item)));
console.log(diff); // 输出: [1, 2, 3]

总结

集合是一种非常有用的数据结构,它可以帮助我们快速地进行数组去重、求交集、并集和差集等操作。在实际开发中,合理使用集合可以提高代码的效率和可读性。

http://www.lryc.cn/news/510443.html

相关文章:

  • 基础爬虫案例实战
  • 深度学习工作:从追求 SoTA 到揭示新现象
  • 学习记录—正则表达式-基本语法
  • 智慧农业物联网传感器:开启农业新时代
  • 普通人怎么入门学习并使用AI?
  • Java中处理if-else的几种高级方法
  • 前端知识补充—CSS
  • 企业架构学习笔记-数字化转型
  • Linux网络——TCP的运用
  • Vue3之状态管理Vuex
  • DPO(Direct Preference Optimization)算法解释:中英双语
  • Hostapd2.11解析笔记
  • js控制文字溢出显示省略号
  • WPF+MVVM案例实战与特效(四十七)-实现一个路径绘图的自定义按钮控件
  • 操作002:HelloWorld
  • odoo中@api.model, @api.depends和@api.onchange 装饰器的区别
  • 有哪些精益工具可以帮助企业实现转型?
  • 以太网帧结构
  • QT调用Sqlite数据库
  • 前端
  • 【Git】—— 使用git操作远程仓库(gitee)
  • Paddler负载均衡器
  • OSCP - Proving Grounds - Slort
  • YoloV9改进策略:Head改进|DynamicHead,利用注意力机制统一目标检测头部|即插即用
  • BFD综合详细实验配置案例
  • 自然语言处理与知识图谱的融合与应用
  • c# RSA加解密工具,.netRSA加解密工具
  • Metricbeat安装教程——Linux——Metricbeat监控ES集群
  • 一万多字拆解java中——“ 注解 ”的一切(三)(已完结)
  • 记一次rac故障原因分析(虚拟化平台)