方法1:
function unique1(array) {
var newArr = [];
//遍历数组
for(let key of array ){
//如果key已经保存到了临时数组,则跳过,否则保存到临时数组里
if(newArr.indexOf(key)== -1){
newArr.push(key)
}
}
return newArr;
}
方法2:
function unique2(array) {
//n为hash表,newArr为临时数组
var n = {},newArr = [];
for(let key of array){
if(!n[key]){ //如果hash表中没有当前项
n[key] = true; // 存入hash表
newArr.push(key); // 把当前的数组项push到临时数组里
}
}
return newArr;
}
注意: 不能区分 1 和 ‘1’
unique2([1,2,4,'1',2,4,3,2] // [1, 2, 4, 3]
方法3:使用filter方法
function unique3(array) {
var newArr = array.filter(function (element, index, self) {
return self.indexOf(element) === index
});
return newArr;
}