JavaScript 数组去重方法:高效实现与性能对比
以下是一种基本的实现方式,使用循环判断每个元素是否已存在于结果数组中,如果不存在则添加到结果数组中:
function uniqueArray(arr) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (result.indexOf(arr[i]) === -1) {
result.push(arr[i]);
}
}
return result;
}
// 示例
var arr = [1, 2, 3, 2, 4, 3, 5];
var uniqueArr = uniqueArray(arr); // [1, 2, 3, 4, 5]
这种方法的缺点是时间复杂度较高,当数组较大时性能可能会受到影响。
还有一种使用 ES6 的 Set 对象的方法:
function uniqueArray(arr) {
return Array.from(new Set(arr));
}
// 示例
var arr = [1, 2, 3, 2, 4, 3, 5];
var uniqueArr = uniqueArray(arr); // [1, 2, 3, 4, 5]
这种方法先将原数组转换为 Set 对象,Set 对象会自动去重,然后再将 Set 对象转换为数组返回。优点是代码简洁,性能较高。
原文地址: https://www.cveoy.top/t/topic/okLF 著作权归作者所有。请勿转载和采集!