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

如何按#Years列扩展数据为多行?求助reduce函数实现方法

解决方案

原始数据表格

IDEnroll Year#Years
2300120221
2300620221
2301520221
2301420212
2300420203

目标结果表格

IDEnroll Year
230012022
230062022
230152022
230142021
230142022
230042020
230042021
230042022

使用reduce实现的代码

// 原始数据数组
const originalData = [
  { ID: '23001', EnrollYear: 2022, Years: 1 },
  { ID: '23006', EnrollYear: 2022, Years: 1 },
  { ID: '23015', EnrollYear: 2022, Years: 1 },
  { ID: '23014', EnrollYear: 2021, Years: 2 },
  { ID: '23004', EnrollYear: 2020, Years: 3 }
];

// 用reduce展开数据
const result = originalData.reduce((acc, item) => {
  // 根据#Years的值生成对应行数的条目
  for (let i = 0; i < item.Years; i++) {
    acc.push({
      ID: item.ID,
      EnrollYear: item.EnrollYear + i
    });
  }
  return acc;
}, []);

console.log(result);

逻辑说明

  • 初始化reduce的累加器acc为空数组,用于存储最终结果。
  • 遍历原始数据的每一项:
    • 根据当前项的Years值循环,生成对应数量的条目。
    • 每一条目的EnrollYear为原始入学年份加上循环索引i(从0开始,确保首行是原年份,后续逐行递增1)。
    • 将生成的条目推入累加器数组。
  • 最终累加器数组即为目标格式的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:07:01