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

如何使用JavaScript循环创建嵌套对象数组?

解决方法

你的代码存在两个关键问题:

  1. columns 被声明为对象({}),但你使用了数组的 push() 方法,对象没有这个方法,会直接报错。
  2. 你只把日期作为值存入,没有构建需求中包含 number 和 url 的嵌套对象结构。

方案1:每个日期对应单个条目(日期唯一时适用)

如果任务数据中每个日期唯一,可以直接将日期作为对象的键,对应包含 number 和 url 的子对象:

var columns = {};

for (var i = 0; i < parsed_data.tasks.length; i++) {
  var task = parsed_data.tasks[i];
  // 以日期为键,赋值包含number和url的对象
  columns[task.date] = {
    number: task.number,
    url: task.url
  };
}

console.log(columns);

方案2:每个日期对应多个条目(处理重复日期)

如果存在重复日期,直接赋值会覆盖之前的条目。此时可以让每个日期对应一个数组,存储该日期下的所有任务:

var columns = {};

for (var i = 0; i < parsed_data.tasks.length; i++) {
  var task = parsed_data.tasks[i];
  var date = task.date;
  
  // 如果该日期还未初始化,先创建空数组
  if (!columns[date]) {
    columns[date] = [];
  }
  
  // 将当前任务的number和url存入数组
  columns[date].push({
    number: task.number,
    url: task.url
  });
}

console.log(columns);

注意:你需求示例中的JSON结构存在重复键,这不符合JSON规范,实际运行会导致后一个键覆盖前一个。方案2是处理重复日期的合理方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:08:45