Set数据结构.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Set数据结构 数据结构 1.定义:类似于数组,成员的值都是唯⼀的。 2.属性和⽅法 add(value) / delete(value) / has(value) / clear() 遍历⽅法:keys() / values() / entries() / forEach()。keys()、values()、entries() 返回的是遍历器 Set数据结构是JavaScript中一种非常重要的数据组织方式,它的核心特性是存储的元素都是唯一的,不允许重复。在本文中,我们将深入探讨Set数据结构的定义、属性、方法以及如何进行遍历。 ### 定义与特点 Set数据结构类似于数组,但与数组不同的是,Set中的元素不允许重复。这意味着当你尝试添加一个已经存在于Set中的值时,该操作不会改变Set的大小。Set的这种特性使得它在处理需要去重的场景中特别有用,例如收集不重复的用户输入或计算唯一元素。 ### 常用属性和方法 1. **add(value)**: 向Set中添加一个新元素。如果该元素已存在,Set将保持不变。 2. **delete(value)**: 删除Set中的指定元素。如果元素不存在,该操作也不会抛出错误。 3. **has(value)**: 检查Set是否包含特定的值,返回一个布尔值。 4. **clear()**: 清空Set中的所有元素,使其变成一个空集合。 ### 遍历方法 Set提供了多种遍历其元素的方式: 1. **keys()**: 返回一个遍历器对象,用于遍历Set中的所有元素。由于Set中的元素即为键也是值,所以keys()与values()在Set中通常返回相同的结果。 2. **values()**: 同样返回一个遍历器对象,用于按插入顺序遍历Set的元素。 3. **entries()**: 返回一个遍历器对象,每个迭代的元素是一个包含两个成员的数组,即[value, value],因为Set中的键值是相同的。 4. **forEach(callbackFn, thisArg)**: 对Set中的每个元素执行一次提供的函数。回调函数接收三个参数:当前元素的值、当前元素的值(与第一个参数相同,因为在Set中键值相等)、和Set实例本身。 ### 使用示例 ```javascript let mySet = new Set(); mySet.add('apple').add('banana').add('apple'); // 'apple' 只会被添加一次 console.log(mySet.size); // 输出 2 mySet.delete('banana'); console.log(mySet.has('banana')); // 输出 false mySet.forEach(function(item) { console.log(item); }); // 输出 'apple' for (let item of mySet.keys()) { console.log(item); } // 与上面的forEach效果相同,输出 'apple' ``` ### 应用场景 Set数据结构在实际开发中有多种应用: - **去重**:快速去除数组中的重复元素,如`let uniqueArray = [...new Set(originalArray)]`。 - **集合操作**:Set支持并集、交集和差集操作,例如`let unionSet = new Set([...set1, ...set2])`。 - **存储不规则数据**:对于无法用数组索引的元素,如对象,Set提供了一种方便的存储和查找方式。 总结,Set数据结构是JavaScript中一个强大且实用的工具,它提供了对唯一元素的有效管理和遍历,是处理数据集合时不可或缺的一部分。理解并熟练使用Set,可以极大地提升代码的简洁性和效率。
- 粉丝: 195
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 形状检测32-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma数据集合集.rar
- qwewq23132131231
- 2024年智算云市场发展与生态分析报告
- 冒泡排序算法解析及优化.md
- MySQL中的数据库管理语句-ALTER USER.pdf
- 论文复现:结合 CNN 和 LSTM 的滚动轴承剩余使用寿命预测方法
- 2018年最新 ECshop母婴用品商城新版系统(微商城+微分销+微信支付)
- 形状分类31-YOLO(v5至v11)、COCO、CreateML、Darknet、Paligemma、VOC数据集合集.rar
- 常见排序算法概述及其性能比较
- 前端开发中的JS快速排序算法原理及实现方法