数组去重是js当中经常遇到的,废话不多说上代码。
方法一:
function getNewArr(arr) {
var newArr = [];
for(var i =0;i<arr.length-1;i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}
return newArr;
}
方法二:
给数组排序,排序之后,重复的值只能是在旁边出现
function getNewArr(arr) {
arr.sort();
var newArr = [];
for(var i =0;i<arr.length-1;i++){
if(arr[i] == arr[i+1]){
continue;
}
newArr.push(arr[i]);
}
return newArr;
}
方法二:
Array.prototype.unique1 = function(){
var res = [this[0]];
for(var i = 1; i < this.length; i++){
var repeat = false;
for(var j = 0; j < res.length; j++){
if(this[i] == res[j]){
repeat = true;
break;
}
}
if(!repeat){
res.push(this[i]);
}
}
return res;
}
这种方法会改变数组的原始属性,如果用for-in循环遍历数组的时候会有问题,会多遍历一个属性,但并不是我们想要的。