// Set去重
var arr1 = [1,2,3,4,5,2,3]
function unique1(arr){
// return [...new Set(arr)]
return Array.from(new Set(arr))
}
console.log(unique1(arr1));
// 循环两次
var arr2 = [1,2,3,4,5,2,3]
function unique2(arr){
for(var i = 0 , len=arr.length; i<len;i++){
for(var j=i+1,len=arr.length;j<len;j++){
if(arr[i] === arr[j]){
arr.splice(j,1)
j-- //每删除一个
len--
}
}
}
return arr
}
console.log(unique2(arr2));
// indexOf去重
var arr3 = [1,2,3,4,5,2,3]
function unique3(arr){
var newArr = []
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique3(arr3));
// includes去重
var arr4 = [1,2,3,4,5,2,3]
function unique4(arr){
var newArr = []
for(var i=0;i<arr.length;i++){
if(!newArr.includes(arr[i])){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique4(arr4));
// filter去重
var arr5 = [1,2,3,4,5,2,3]
function unique5(arr){
arr.filter(function(item,index){
// 元素第一次出现的索引和当前索引进行对比
// 0 1 2 3 1 2
// 0 1 2 3 4 5
// console.log(arr.indexOf(item,0),index);
return arr.indexOf(item,0) === index
})
}
console.log(unique5(arr5));