数组去重方法总结
方法一:原生for循环的方式
var arr=[1,2,3,2,3,4,1,3]
function fun(arr){
for (var i = 0; i <arr.length; i++) {
for (var j = i+1; j < arr.length; j++) {
if(arr[i]===arr[j]){
arr.splice(j,1)
j--
}
}
}
}
fun(arr)
console.log(arr);
方法二:利用对象属性名不能重复的特性:
var arr=[1,2,3,2,3,4,1,3]
function fun(arr){
var obj={}
var newArr=[]
arr.forEach((item,index)=>{
if(!obj.item){
obj[item]=1
}
})
for (let key in obj) {
newArr.push(+key)
}
return newArr
}
const a=fun(arr)
console.log(a);
方法三:set容器和三点运算符
var arr=[1,2,3,2,3,4,1,3]
function fun(arr){
return [...new Set(arr)]
}
const a=fun(arr)
console.log(a);
方法四:
var arr=[1,2,3,2,3,4,1,3]
function fun(arr){
const newArr=[]
arr.forEach(item=>{if(newArr.indexOf(item)===-1){
newArr.push(item)
}})
return newArr
}
const a=fun(arr)
console.log(a);