文章目录
为数组去重是前端学习过程中比较重要的一个点,今天就需要将各种去重的方法梳理一遍。
方法
1. ES5 中常使用的去重方法
function deduplicate(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
return arr;
}
var arr = [1, 1,"u", "u", undefined, undefined, true, true];
console.log(deduplicate(arr));
- 内层循环判断值,如果两个值相等就需要使用数组的
splice
方法去除 - 外层循环整体次数
注意 : 去重的时候,
NaN
用===
是无法比较相等的,每个NaN
都是不等的
2. 利用sort()
方法去重
function deduplicate(arr) {
arr = arr.sort()
var arrry = [arr[0]];
for (var i = 1; i < arr.length; i++) {
if (arr[i] !== arr[i - 1]) {
arrry.push(arr[i]);
}
}
return arrry;
}
var arr = [<