方法1:
创建一个新数组temp。遍历原数组,当元素没有在新数组出现时,才往新数组里放。
function unique(arr){
var temp = [];
for(var i = 0;i<arr.length;i++){
//js没有contains
if(temp.indexOf(arr[i]) === -1){
temp.push(arr[i]);
}
}
return temp;
}
方法2:
先排序,然后相邻比较,当后一位和前一位不一样时,删掉后一位
function unique(arr){
arr.sort(function(a,b){return a-b;});
for(var i = 1;i<arr.length;i++){
if(arr[i]==arr[i-1]){
arr.splice(i,1);
i--;
}
}
return arr;
}
需要注意的是不能直接用arr.sort();
因为这样是按照字母排序而不是按数字大小排序
如:arr=[10,5,40,25,1000,1]
则 arr.sort()后的结果是 arr = [1,10,1000,25,40,5]
方法3:利用set
function unique(arr){
return Array.from(new Set(arr));
}