1.es6 语法 new Set()
function unique(arr){return new Set(arr)
}
2. 对数组进行排序,然后两两比较法
function unique(arr){
//sort 对数组进行排序
arr.sort(function(a,b){return a-b})
// 定义新数组
var newArr = [arr[1]]
// 遍历数组
for(var i = 0;i<arr.length;i++){
// 将 newArr 的最后一项与数组的单项进行对比,相等则添加到新数组
if(newArr[newArr.length - 1] !== arr[i])newArr.push(arr[i]);
}
return newArr
}
3. 利用对象属性的唯一性
function unique(arr){var obj = {},newArr=[]
for(var i = 0;i<arr.length;i++){// 判断 obj 是否有 arr[i] 的属性
if(!obj[arr[i]]){obj[arr[i]] = 1
newArr.push(arr[i])
}
}
return newArr
}
4.indexOf 方法可返回某个指定的字符串值在字符串中首次出现的位置,没有则返回 -1
function unique(arr){var newArr = []
for(var i = 0;i<arr.length;i++){if(newArr.indexOf(arr[i])<0){newArr.push(arr[i])
}
}
return newArr
}