一、双重for循环结合splice方法来去重
var arr = [1, 3, 4, 2, 22, 2, 2, 4, 6, 6, 7, 5, 5]
function norepeat(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1)
j--
}
}
}
return arr
}
var arr2 = norepeat(arr)
console.log(arr2);
//输出结果为[1, 3, 4, 2, 22, 6, 7, 5]
二、indexOf方法结合fliter方法去除数组中的重复项
var arr = [1, 3, 4, 2, 22, 2, 2, 4, 6, 6, 7, 5, 5]
//item:当前成员,index:当前位置,self:整个数组.
var newArr = arr.filter(function (item, index, self) {
return self.indexOf(item) == index
});
console.log(newArr);
//输出结果为[1, 3, 4, 2, 22, 6, 7, 5]
三、使用include方法去重
function unique(arr) {
var arr2 = []
for (var i = 0; i < arr.length; i++) {
if (!arr2.includes(arr[i])) {
arr2.push(arr[i])
}
}
return arr2
}
var arr = [1, 3, 4, 2, 22, 2, 2, 4, 6, 6, 7, 5, 5]
console.log(unique(arr));
四、indexOf的方法在我前面的博客有提到过,可以去看看
//使用indexOf的方法去除数组中的重复项
var arr = [1, 3, 4, 2, 22, 2, 2, 4, 6, 6, 7, 5, 5]
var newArr = []
for (i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) == -1) {
newArr.push(arr[i])
}
}
console.log(newArr);
五、sort方法
function move(Arr) {
Arr.sort();
var r = [Arr[i]];
for (var i = 0; i < Arr.length; i++) {
if (Arr[i] !== r[r.length - 1]) {
r.push(Arr[i])
}
}
return r
}
var arr = [1, 3, 4, 2, 22, 2, 2, 4, 6, 6, 7, 5, 5]
console.log(move(arr));
以上的一些数组去重的方法是比较常见的几种。另外,给大家一个小建议:大家可以把平常敲代码时用的较多的一些方法封装起来,放在一个js文件里面,以后敲代码的时候只需要引用该js文件就可以直接拿来使用了。