You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何按id分组对象数组 并将date、emi存入嵌套数组

问题核心改动说明

你现有代码的问题有两个:

  1. 用数组做映射存储分组结果,数字类型的id会被识别为数组下标,导致下标为0的位置出现空值(也就是你输出开头的null)
  2. 映射中存储的是同id的所有对象数组,而非按照预期合并为单个对象,将date和emi收集到嵌套的date_emi数组中

调整后可直接运行的代码

// 用普通对象做id到聚合对象的映射
const objMap = {};

originalArray.forEach(element => {
  const makeKey = element.id;
  // 首次遇到该id时,初始化聚合对象的公共字段和空date_emi数组
  if(!objMap[makeKey]) {
    objMap[makeKey] = {
      id: element.id,
      id_grid: element.id_grid,
      id_sector: element.id_sector,
      date_emi: []
    };
  }
  // 仅把当前项的date和emi推入对应id的date_emi数组
  objMap[makeKey].date_emi.push({
    emi: element.emi,
    date: element.date
  });
});

// 把映射对象的值提取为数组,就是预期输出结果
const expected_output = Object.values(objMap);

内容的提问来源于stack exchange,提问作者migueL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 21:45:00