1.使用ES6的Set方法,注意返回的是一个对象,不是数组
function uniqueArray(arr){
var arrNew=new Set(arr);
return arrNew;
}
2.使用Es6的Array.from()方法
function uniqueArray2(arr){
var arrNew=Array.from(new Set(arr));
return arrNew;
}
3.声明一个新数组,遍历原数组
function uniqueArray(arr){
var arrNew=[];
for(var i=0;i<arr.length;i++){
if(arrNew.indexOf(arr[i])==-1){
arrNew.push(arr[i]);
}
}
return arrNew;
}
4.先将原数组进行排序,在进行遍历
function uniqueArray4(arr){
arr.sort();
var arrNew=[arr[0]];
for(var i=0;i<arr.length;i++){
if(arr[i]!=arrNew[arrNew.length-1]){
arrNew.push(arr[i]);
}
}
return arrNew;
}
5.创建一个空对象和一个空数组,把原数组的值保存在对象的key中
function uniqueArray5(arr){
var arrNew=[];
var arrOb={};
for(var i=0;i<arr.length;i++){
if(!arrOb[arr[i]]){
arrNew.push(arr[i]);
arrOb[arr[i]]=1;
}
}
return arrNew;
}