登录
首页 >  文章 >  前端

如何根据name属性值判断数组对象中是否存在重复项并返回所有重复对象?

时间:2025-02-20 14:58:24 324浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《如何根据name属性值判断数组对象中是否存在重复项并返回所有重复对象? 》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

数组对象中根据特定属性值判断是否重复

给定一个数组对象 A,其包含多个对象,每个对象具有 id、name 和 address 属性。任务是根据 name 属性判断是否存在重复。

若存在重复,则保留并返回所有 name 值相同的对象,保存于新数组中。否则,删除重复项。

实现:

var A = [
          { id: 1, name: "张三", address: "北京" },
          { id: 2, name: "李四", address: "上海" },
          { id: 3, name: "张三", address: "杭州" },
          { id: 4, name: "王五", address: "深圳" },
          { id: 5, name: "李四", address: "厦门" },
          { id: 6, name: "张三", address: "广州" },
        ];

const result = Object.values(A.reduce((acc, cur) => ((acc[cur.name] || (acc[cur.name] = [])).push(cur), acc), []))
  .filter(item => item.length > 1)
  .flat();

结果:

[
  {
    "id": 1,
    "name": "张三",
    "address": "北京"
  },
  {
    "id": 3,
    "name": "张三",
    "address": "杭州"
  },
  {
    "id": 6,
    "name": "张三",
    "address": "广州"
  },
  {
    "id": 2,
    "name": "李四",
    "address": "上海"
  },
  {
    "id": 5,
    "name": "李四",
    "address": "厦门"
  }
]

以上就是《如何根据name属性值判断数组对象中是否存在重复项并返回所有重复对象? 》的详细内容,更多关于的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>