技术文摘
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数组去重 快速去重算法
- 利用 Goyacc 打造 Elasticsearch Querystring 解析器 - 特定领域语言语法分析实践
- 香蕉能否驱动随机数生成器?靠谱与否
- 你真的了解分布式事务吗?
- Polars:解决 Pandas 处理数据慢的新选择
- 微服务中的服务注册与服务发现
- 模块循环依赖为何不会死循环?CommonJS 与 ES Module 处理的差异在哪?
- Python、C、C 扩展、Cython 差异之 99%的人未知对比
- 快速理解 TypeScript 泛型工具类型
- 对 Flink Regular Join 和 TTL 的理解
- 5G 时代下 Web 前端边界的拓展之思
- 九种优化软件开发过程的策略
- 自适应批作业调度器:助力 Flink 批作业自动确定并行度
- Kafka 每秒写入 10 万条消息如此厉害,归因于这些优化!
- 四行代码轻松攻克微积分!Python 此模块太神奇!
- Truncate、Delete 与 Drop 的六大差异!你知晓多少?