技术文摘
JavaScript 实现数组快速去重的方法
JavaScript 实现数组快速去重的方法
在 JavaScript 编程中,数组去重是一个常见的需求。快速有效地对数组进行去重,能够提升程序的性能和效率。下面就为大家介绍几种常见且高效的数组去重方法。
使用 Set 数据结构
ES6 引入的 Set 数据结构是一种无序且唯一的数据集合。利用 Set 的这一特性,可以非常简洁地实现数组去重。示例代码如下:
function uniqueArrayWithSet(arr) {
return Array.from(new Set(arr));
}
let array = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueArrayWithSet(array));
在上述代码中,首先将数组传入 Set 构造函数,Set 会自动去除重复元素,然后使用 Array.from() 方法将 Set 转换回数组。这种方法代码简洁,执行效率高,适用于大多数情况。
使用 filter 方法和 indexOf
filter() 方法会创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。结合 indexOf() 方法,可以实现数组去重。示例代码如下:
function uniqueArrayWithFilter(arr) {
return arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
}
let array2 = [6, 7, 7, 8, 9, 9];
console.log(uniqueArrayWithFilter(array2));
在这段代码中,filter() 方法遍历数组中的每个元素,indexOf() 方法返回元素在数组中第一次出现的位置。如果当前元素的位置与 indexOf() 返回的位置相同,说明该元素是第一次出现,将其保留在新数组中。
使用 reduce 方法
reduce() 方法对数组中的每个元素执行一个由您提供的 reducer 函数,该函数会接收一个累加器和当前元素,并返回一个新的累加器值。利用 reduce() 方法也可以实现数组去重。示例代码如下:
function uniqueArrayWithReduce(arr) {
return arr.reduce((acc, cur) => {
if (!acc.includes(cur)) {
acc.push(cur);
}
return acc;
}, []);
}
let array3 = [10, 11, 11, 12, 13, 13];
console.log(uniqueArrayWithReduce(array3));
这里 reduce() 方法从一个空数组开始,遍历原数组中的每个元素。如果累加器数组中不包含当前元素,则将其添加到累加器数组中,最终返回去重后的数组。
在实际应用中,可以根据数组的特点和项目需求选择合适的去重方法。掌握这些方法,能让我们在处理数组去重问题时更加得心应手,提高开发效率。
TAGS: 数组操作 JavaScript编程 JavaScript数组去重 快速去重算法
- 面试官:This 与 Super 的区别及 This 能否调用父类
- Classmethod 缘何比 Staticmethod 更受青睐?
- Java 操作 Neo4J 轻松上手
- 令人惊叹!CSS 竟能实现烟雾效果?
- Web3 究竟是什么?怎样去使用?
- ECMAScript 新提案:JSON 模块 令人惊叹
- 面试必谈:Kafka 消费模型解析
- 30 个类模拟手写 Spring 核心原理中的 MVC 映射功能
- Go 服务自动采样性能分析的方案设计及实现
- 深入了解基于 Next.js 的 SSR/SSG 方案
- Go 工程化:优雅编写 Repo 层代码之道
- 微软专利披露 WMR 系列 VR 头显的 MR 透视效果图像对齐方法及系统
- Go 中值为 Nil 能否调用函数?
- Hashtable 用于检验随机数随机性
- JavaScript 数据分组的优雅实现方式