function unique(arr){
let newArr=[arr[0]];
for(let i=0;i<arr.length;i++){
let flag=true;
for(let j=0;j<newArr.length;j++){ //遍历新数组,判断新数组中是否有该元素
if(arr[i]===newArr[j]){
flag=false;
break;
}
}
if(flag){
newArr.push(arr[i]);
}
}
return newArr;
}
方法二--一个循环,利用对象属性存在
function unique(arr){
let newArr=[];
let obj={};
for(let i=0;i<arr.length;i++){
if(!obj[arr[i]]){
newArr.push(arr[i]);
obj[arr[i]]=1;
}
}
return newArr;
}
方法三--先对数组进行排序,两两比较
function unique(arr){
let formArr=arr.sort();
let newArr=[formArr[0]];
for(let i=0;i<formArr.length-1;i++){
if(formArr[i]!==formArr[i+1]){
newArr.push(formArr[i+1]);
}
}
return newArr;
}
方法四--利用Array.includes()
function unique(arr){
let newArr=[];
for(let i=0;i<arr.length;i++){
if(!newArr.includes(arr[i])){
newArr.push(arr[i]);
}
}
return newArr;
}
方法五--利用ES6中Set
function unique(arr){
let newArr=[...new Set(arr)];
return newArr;
}