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

如何将日期标签数组和日期值数组合并为目标对象数组?

问题原因

你之前的两种写法都是生成单一对象,而date_label数组的每一项都是固定的Date字符串,同一个对象下重复对相同key赋值,后面的值会覆盖前面的,所以最终只会保留最后一个日期。你的需求是生成包含多个独立对象的数组,每个对象单独持有一个Date属性,因此不能把所有键值对塞到同一个对象里。

正确实现方式

1. 改造原for循环写法

每次循环生成一个新对象,推入结果数组即可:

const result = [];
for (var i = 0, l = date_label.length; i < l; i += 1) {
    const obj = {};
    obj[date_label[i]] = data_date[i];
    result.push(obj);
}
console.log(result);

2. 原生JS极简实现

如果date_label全为固定的Date字段,可以直接遍历日期数组生成:

const result = data_date.map(date => ({ Date: date }))

如果需要兼容date_label存在不同标签的场景,可以按下标匹配两个数组:

const result = date_label.map((label, index) => ({ [label]: data_date[index] }))

3. Lodash实现

使用_.zipWith方法实现双数组的对应转换:

const result = _.zipWith(date_label, data_date, (label, date) => ({ [label]: date }))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:06:04