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

如何在JavaScript中按出生年份分组合并数组对象?

实现方案

可以通过数组的reduce方法先完成分组,再转换为目标结构,代码如下:

const array = [
  { yearBirth: 1995, name: 'daniel' },
  { yearBirth: 1995, name: 'avi' },
  { yearBirth: 1993, name: 'john' },
  { yearBirth: 1993, name: 'david' },
];

// 按yearBirth分组,收集对应姓名对象
const groupedData = array.reduce((acc, current) => {
  const year = current.yearBirth;
  // 若当前年份未在分组对象中,初始化空数组
  if (!acc[year]) {
    acc[year] = [];
  }
  // 将当前项的name包装成对象存入对应年份数组
  acc[year].push({ name: current.name });
  return acc;
}, {});

// 转换为目标结构
const finalResult = {
  yearBirth: Object.entries(groupedData).map(([year, names]) => ({
    [year]: names
  }))
};

console.log(finalResult);

步骤说明

  1. 分组处理:使用reduce遍历原数组,以yearBirth的值作为键,把每个元素的name字段包装成对象后,存入对应年份的数组中,得到一个以年份为键、姓名对象数组为值的临时对象。
  2. 结构转换:通过Object.entries将临时对象转为键值对数组,再用map把每一组键值对转换成{年份: 姓名数组}的对象,最后将这些对象存入yearBirth数组,得到你需要的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:15:39