const arr = [1, 4, 1, 4, 6, 2, 8, 8, 4, 3, 9, 1, 10, 9, 6, 21, '10']
// 1. 利用 Set数据结构的特性------值唯一
const duplicateRemoval = () => {
const newArr = [...new Set(arr)]
console.log('newArr-set',newArr)
}
duplicateRemoval()
// 2. 循环去重
const duplicateRemoval1 = () => {
const newArr = []
arr.forEach((item) => {
if (newArr.indexOf(item) === -1) newArr.push(item)
})
console.log('newArr-循环',newArr)
}
const duplicateRemoval2 = () => {
const newArr = []
arr.forEach((item) => {
if (!newArr.includes(item)) newArr.push(item)
})
console.log('newArr-循环',newArr)
}
duplicateRemoval1()
duplicateRemoval2()
// 3. 使用 reduce 去重
const duplicateRemoval3 = () => {
const newArr = arr.reduce((acc, cur) => {
if (!acc.includes(cur)) acc.push(cur)
return acc
}, [])
console.log('newArr-reduce',newArr)
}
duplicateRemoval3()
// 4. 使用 map数据结构判断数组是否已经存在某个值
const duplicateRemoval4 = () => {
const map = new Map()
const newArr = []
arr.forEach(item => {
if (!map.has(item)) {
map.set(item, item)
newArr.push(item)
}
})
console.log('newArr-map', newArr)
}
duplicateRemoval4()
// 5. 先排序,然后相邻比较
const duplicateRemoval5 = () => {
arr.sort((a,b) => a-b)
const newArr = [arr[0]]
for (let i = 1; i < arr.length; i++) {
if (arr[i] !== arr[i-1]) newArr.push(arr[i])
}
console.log('newArr-sort',newArr)
}
duplicateRemoval5()
js数组去重
最新推荐文章于 2024-06-01 07:27:22 发布