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

如何将两个独立数组合并为一个对象数组?

合并对应位置数组为对象数组的最佳方法

要将两个对应位置的数组合并为对象数组,最简洁高效的方式是使用数组的map方法,前提是你能确定两个数组的长度完全一致。

基础实现(数组长度一致时)

const datesArray = [
  "2017-01-01",
  "2017-01-02",
  "2017-01-03",
  // ... 剩余日期元素
  "2017-01-31",
];

const snowfallArray = [
  0.98, 0, 0, 0, 0, 0, 0.35, 0.42, 0, 0.14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
];

// 核心代码
const combinedArray = datesArray.map((date, index) => ({
  date, // 简写等价于 date: date
  snowFall: snowfallArray[index]
}));

// 输出结果示例:
// [{date: '2017-01-01', snowFall: 0.98}, {date: '2017-01-02', snowFall: 0}, ...]

map方法会遍历datesArray的每一个元素,同时获取当前元素的索引index,用这个索引直接取出snowfallArray中对应位置的值,最终生成由目标对象组成的新数组。

处理数组长度不一致的情况

如果不确定两个数组长度是否相同,可以先取较短数组的长度来遍历,避免出现undefined的情况:

const maxValidLength = Math.min(datesArray.length, snowfallArray.length);
const combinedArray = [];

for (let i = 0; i < maxValidLength; i++) {
  combinedArray.push({
    date: datesArray[i],
    snowFall: snowfallArray[i]
  });
}

或者用map结合空值合并运算符,给缺失的降雪数据设置默认值:

const combinedArray = datesArray.map((date, index) => ({
  date,
  snowFall: snowfallArray[index] ?? 0 // 若对应位置无数据,默认设为0
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:10:15