1. 哈希表去重(hash会有缺陷)
var arr = [1, '1', null, 2, null, true, 3, true, '3', 2, 3, 2, 3]
const only = target => {
let results = []
let hash = {}
target.forEach(item => {
if (!hash[item]) {
results.push(item)
hash[item] = true
}
})
return results
}
const results = only(arr)
console.log(results)
2.indexOf去重
var arr = [1, '1', null, 2, null, true, 3, true, '3', 2, 3, 2, 3]
const only = target => {
let results = []
target.forEach(item => {
if(results.indexOf(item)===-1){
results.push(item)
}
})
return results
}
const results = only(arr)
console.log(results)
2.reduce+includes去重
var arr = [1, '1', null, 2, null, true, 3, true, '3', 2, 3, 2, 3]
const only = target => {
const results = target.reduce((cur,par)=>{
return cur.includes(par)?cur:cur.concat(par)
},[])
return results
}
const results = only(arr)
console.log(results)