1、使用新数组,通过indexof判断
function noRepeat(arr){
var newarr=[];
for(var i=0;i<arr.length;i++){
if(newarr.indexOf(arr[i])>=0){
}else {
newarr.push(arr[i]);
}
}
return newarr;
}
2、通过对象的属性:
function normalize(arr) {
if (arr && Array.isArray(arr)) {
var i, len, map = {};
for (i = arr.length; i >= 0; --i) {
if (arr[i] in map) {
arr.splice(i, 1);
} else {
map[arr[i]] = true;
}
}
}
return arr;
}
3、嵌套两个for循环
function noRepeat(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;
}
4、对数组先进行排序,再进行对比
function noRepeat(arr){
arr.sort();
var temp = arr[0];
for(var i=1;i<arr.length;i++){
if(arr[i]==temp){
arr.splice(i,1);
i--;
}else{
temp=arr[i];
}
}
return arr;
}
5、通过indexof进行下标对比
function noRepeat(arr){
for(var i = 0;i<arr.length;i++){
if(arr.indexOf(arr[i])==i){
}else{
arr.splice(i,1);
i--;
}
}
return arr;
}
6、通过filter
function noRepeat(arr){
var r = arr.filter(function (val,index,item) {
return item.indexOf(val) == index;
})
return r;
}