数组去重方法:filter,reduce

本文探讨了两种JavaScript中去除数组重复元素的方法,分别是使用filter和reduce。filter方法通过比较数组中元素的索引来实现去重,而reduce方法则通过累积操作创建新数组并检查元素是否已存在来去重。这两种方法都不会改变原数组,提供了简洁的去重解决方案。
摘要由CSDN通过智能技术生成

filter、reduce实现数组去重。

filter实现数组去重代码

/**
 * filter
 */

let ar = [1, 2, 2, 3, 4, 4, 5]

let unique_ar = ar.filter((x, index) => {
    // if(ar.indexOf(x)===index){
    //     return true
    // }else{
    //     return false
    // }
    return ar.indexOf(x) === index
})

console.log(unique_ar)

reduce实现数组去重代码

/**
 * reduce
 */

let ar = [1, 2, 2, 3, 4, 4, 5]
let mySum=ar.reduce((newArr,value)=>{
    console.log('item',value,newArr.indexOf(value))
    newArr&&newArr.indexOf(value)>0?null:newArr.push(value);
    console.log('newArr',newArr)
    return newArr;
},[])
console.log('reduce去重后',mySum)

 

重点思考:

各自的实现思想是什么?

filter的去重方法:利用了过滤方法——filter,遍历调用它的这个数组,并且不改变原数组。巧妙地通过filter函数,每次遍历数组元素都会有一个返回值的“true”或“false”的特性,简洁的实现去重,最终得到一个新的数组。

reduce的去重方法:利用了reduce自动求和方法,可以设置一个和的初始值,来存最后去重后的数组。主要是判断当前被遍历的元素是否存在于newArr中,有的话,不做任何操作,没有的话,就把它放进去,最后返回出一个去重后的结果数组。同样,这个方法也是没有改变原来的数组。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值