let arr = [1,2,2,4,null,null,'3','abc',3,4,5,'3','abc',null,null]
方法一:
let result = Array.from(new Set(arr))
console.log(result)
方法二:
let result = arr.filter((item,index) => arr.indexOf(item) == index)
console.log(result)
方法三:
let result = arr.reduce((acc,cur) => acc.includes(cur) ? acc : acc.concat(cur),[])
console.log(result)
方法四:
let result = []
arr.forEach(item => {
result.includes(item) ? '' : result.push(item)
})
console.log(result)
方法五:
let result = []
arr.forEach(item => {
result.indexOf(item) !== -1 ? '' : result.push(item)
})
console.log(result)
方法六:
let map = new Map()
let result = []
arr.forEach(item => {
if(!map.get(item)){
map.set(item,true)
result.push(item)
}
})
console.log(result)
方法七:
let obj = {}
let result = arr.filter(item => obj.hasOwnProperty(typeof item + item) ? false : obj[typeof item + item] = true)
console.log(result)
方法八:
let obj = {}
for(let i = 0; i < arr.length; i++){
let item = arr[i]
if(obj[item] !== undefined){
arr.splice(i,1)
i--
continue
}
obj[item] = item
}
console.log(arr)
方法九:
let obj = {}
for(let i = 0; i < arr.length; i++){
let item = arr[i]
if(obj[item] !== undefined){
arr[i] = arr[arr.lenght -1]
arr.length--
i--
continue
}
obj[item] = item
}
console.log(arr)