方法一:使用indexOf()
function unique2(arr){
var newArr = [];
for(var i = 0; i < arr.length; i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}
return newArr;
}
var arr3 = [1,4,3,3,2,6,7,6];
var newarr3 = unique2(arr3);
console.log(newarr3);
方法二:利用Object键值对去重
Array.prototype.unique = function(){
var obj = {};
var len = this.length;
var newarr = [];
for(var i = 0; i < len; i++){
if(!obj[this[i]]){
obj[this[i]] = true;//将元素用键值存入
newarr.push(this[i]);
}
}
return newarr;
}
var arr1 = [1,2,1,6,4,3,3,7,8,9];
var newarr2 = arr1.unique();
console.log(newarr2);
方法三:使用ES6 new Set()
var arr4 = [1,4,3,3,2,6,7,6];
var newarr4 = new Set(arr4);
console.log([...newarr4]);
方法四:使用includes()
function unique1(arr) {
let newLists = [];
for(var i = 0,length = arr.length; i < length; i++){
if(!newLists.includes(arr[i])){
newLists.push(arr[i]);
}
}
return newLists;
}
方法五:使用lastIndexOf()+filter()
let lists = [1,2,6,8,1,25,3,3,6]
let newLists = lists.filter((item, index) => lists.lastIndexOf(item) === index);