什么是去重?
数组去重是指在一个数组中去除重复的元素,使得数组中的每个元素都是唯一的。
在进行数组去重时,通常保留第一个出现的元素,从而删除后续重复出现的相同元素。
去重后的数组保持原有顺序,只包含唯一的元素。
如何实现数组的去重?
let arr=[1,1,5,5,6,3,4]
- 利用 Set 数据结构的特性,它只存储唯一的值,可以快速去重。
console.log([...new Set(arr)],'new set 方法');
- 通过 filter 方法结合 indexOf 或 includes 方法来过滤重复元素。
const fn=arr.filter((item,index,c)=>{
return c.indexOf(item)===index
})
console.log(fn,'filter');
- 通过 reduce 方法将数组简化为一个新数组,保留唯一的元素。
const red=arr.reduce((item,value)=>{
if(!item.includes(value)){
item.push(value)
}
return item
},[])
console.log(red,'reduce');
- forEach遍历数组,将不重复的元素添加到新数组中。
const yy=[]
arr.forEach((item)=>{
if(!yy.includes(item)){
yy.push(item)
}
})
console.log(yy,'forEach');
- 利用 indexOf 方法和 for 循环来判断元素是否已经存在于新数组中
const kong=[]
for(let i=0;i<arr.length;i++){
if(kong.indexOf(arr[i])===-1){
kong.push(arr[i])
}
}
console.log(kong,'运用indexOf,for');
- 通过 Map 数据结构的键值对特性,可以保留唯一的键,从而实现数组去重。
const ff=Array.from(
new Map( arr.map((item)=>[item,item])).values()
)
console.log(ff,'Map');
效果图: