1.Set方法
const uniqueArray1 = (arr) => {
return Array.from(new Set(arr))
}
2.for循环
const uniqueArray2 = (arr) => {
let len = arr.length
for (let i = 0; i < len; ++i) {
for (let j = i + 1; j < len; ++j) {
if (arr[j] === arr[i]) {
arr.splice(j, 1)
--j
--len
}
}
}
}
3.indexOf
const uniqueArray3 = (arr) => {
const newArr = []
arr.forEach(item => {
newArr.indexOf(item) === -1 && newArr.push(item)
})
return newArr
}
4.includes
const uniqueArray4 = (arr) => {
const newArr = []
arr.forEach(item => {
!newArr.includes(item) && newArr.push(item)
})
return newArr
}
5.filter
const uniqueArray5 = (arr) => {
return arr.filter((item, index) => arr.indexOf(item) === index)
}
6.reduce
const uniqueArray6 = (arr) => {
return arr.reduce((pre, item) => {
!pre.includes(item) && pre.push(item)
return pre
}, [])
}
7.Map
const uniqueArray7 = (arr) => {
const map = new Map()
const newArr = []
arr.forEach(item => {
if (!map.has(item)) {
newArr.push(item)
map.set(item, true)
}
})
return newArr
}
8.Object
const uniqueArray8 = (arr) => {
const obj = {}
const newArr = []
arr.forEach(item => {
if (!obj[item]) {
newArr.push(item)
obj[item] = true
}
})
return newArr
}
欢迎评论区补充~