当前位置: 首页 > article >正文

js 查找数组对象中id相同的元素,把他们放到新数组对象中

js 查找数组对象中id相同的元素,把他们放到新数组对象中

可以使用JavaScript中的Array.prototype.reduce方法来实现这个功能。以下是一个示例代码:

const items = [
  { id: 1, name: '张三',age:'16' },
  { id: 2, name: '李四',age:'20' },
  { id: 1, name: '张三',age:'17' },
  { id: 3, name: '王二',age:'21' },
  { id: 1, name: '张三',age:'18' }
];
 
const groupedById = items.reduce((acc, item) => {
  const existingGroupWithId = acc.find(group => group.id === item.id);
  if (existingGroupWithId) {
    existingGroupWithId.items.push(item);
  } else {
    acc.push({ id: item.id, items: [item] });
  }
  return acc;
}, []);
 
console.log(groupedById);

这段代码会输出一个新数组,其中的每个对象都包含一个id和一个items数组,items数组包含所有具有相同id的元素。在这个例子中,输出将是:

[
    {
        "id": 1,
        "name": "张三",
        "items": [
            {
                "id": 1,
                "name": "张三",
                "age": "16"
            },
            {
                "id": 1,
                "name": "张三",
                "age": "17"
            },
            {
                "id": 1,
                "name": "张三",
                "age": "18"
            }
        ]
    },
    {
        "id": 2,
        "name": "李四",
        "items": [
            {
                "id": 2,
                "name": "李四",
                "age": "20"
            }
        ]
    },
    {
        "id": 3,
        "name": "王二",
        "items": [
            {
                "id": 3,
                "name": "王二",
                "age": "21"
            }
        ]
    }
]

http://www.kler.cn/a/296797.html

相关文章:

  • linux系统下PostgreSQL的使用
  • Spring Boot @AllArgsConstructor 还是 @RequiredArgsConstructor
  • 汇编语言知识基础介绍
  • 【网络原理】❤️Tcp 核心机制❤️ 通晓可靠传输的秘密, 保姆式教学, 建议收藏 !!!
  • 算法day09 二叉树
  • 损坏SD数据恢复的8种有效方法
  • 828华为云征文|采用Flexus云服务器X实例部署RTSP直播服务器
  • Playwright 测试:如何在云端使用 Browserless 运行?
  • 数据结构的简单认识
  • 速盾:直播 cdn 服务器带宽?
  • k8s--关于pod方面问题的排错思路与方法
  • 七、Maven继承和聚合关系、及Maven的仓库及查找顺序
  • uniapp 给画作生成画框
  • 又考了两个Oracle认证:RAC和DataGuard,文末送资料
  • VMware虚拟机上安装openfileresa开源的NAS存储管理解决方案和ISCSI共享磁盘存储
  • Springboot整合【Kafka】
  • 【4.1】图搜索算法-BFS和DFS解奇偶树
  • [数据集][目标检测]井盖丢失未盖破损检测数据集VOC+YOLO格式2890张5类别
  • 软件开发人员从0到1实现物联网项目:项目架构的思考
  • JAVA智听未来一站式有声阅读平台听书系统小程序源码