最简单 Set
const unique = arr => Array.from(new Set(arr))
借用 map
const unique = arr => {
const m = new Map()
return arr.filter(item => (m.has(item) ? false : m.set(item, true)))
}
indexOf or includes
const unique = arr => {
const res = []
arr.forEach(item => {
if (res.indexOf(item) === -1) {
res.push(item)
}
})
return res
}
filter
const unique = arr => arr.filter((item, index) => arr.indexOf(item) === index)
sort 后前后元素对比
const unique = arr => {
arr.sort((a, b) => a - b)
const res = [arr[0]]
let index = 0
for (let i = 1; i < arr.length; i++) {
if (arr[index] !== arr[i]) {
res.push(arr[i])
}
index = i
}
return res
}