技术文摘
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数组去重 快速去重算法
- NodeJS中避免UTC时间戳自动转化为本地时间戳的方法
- HTML元信息控制网页缓存的方法
- 解决Vue内联背景图片下多余空白空间的方法
- 网站加载速度慢,document content download是否为罪魁祸首
- Textarea输入框点击时怎样避免颜色改变和加粗
- 怎样获取动态HTML页面内容
- 有哪些原生JS树形插件值得推荐
- Tailwind CSS中功能类优先原则详解
- 多个 Vue 导出的 PDF 文件怎样打包成一个 ZIP 文件
- CSS中优雅隐藏并列布局右侧面板且不挤压内容的方法
- Vue结合jszip库实现多个PDF文件打包成ZIP文件并导出的方法
- Vue3+TS 调用 Pinia 存储报错:解决“找不到模块”问题的方法
- 在 Koa/Node.js 里怎样正确获取 UTC 时间戳
- 前端实现浏览器预览后端返回HTML文件链接的方法
- Vue.js 中 this.$parent 能否完全替代 this.$emit()