用js写一个数组去重的方法
以下是一种基本的实现方式:
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 对象转换为数组返回。优点是代码简洁,性能较高

原文地址: http://www.cveoy.top/t/topic/fERk 著作权归作者所有。请勿转载和采集!