js 数组对象去重reduce

本文介绍如何利用JavaScript的reduce方法来去除数组中对象的重复项,重点探讨ES6语法在去重过程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

reduce数组对象去重

// 根据对象的code值去重,即数组中code相同的只保留一个元素
let arr = [
        { id: 1, code: 2000, name: '秋歌' },
        { id: 2, code: 2001, name: '瓜老板' },
        { id: 3, code: 1001, name: '卷咪' },
        { id: 4, code: 1002, name: '卷米啊' },
        { id: 5, code: 2001, name: '瓜老板' },
      ], 

// 方法
let xx = arr.reduce((r, c) => {
        if (r.find(item => item.code === c.code)) {
          return r
        }
        return [...r, c]
      }, [])
  
  // 也可以这么写 一样得
  duplication(arr) {
      return arr.reduce((cur, next) => {
        const isRepeat = cur.find(v => v.code=== next.code)
        return isRepeat ? cur : [...cur, next]
      }, [])
    },
  duplication(arr)
// 打印结果xx
 [{ id: 1, code: 2000, name: '秋歌' },
        { id: 2, code: 2001, name: '瓜老板' },
        { id: 3, code: 1001, name: '卷咪' },
        { id: 4, code: 1002, name: '卷米啊' }]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值