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

如何对双数组中同日期对应的数据值合并求和?

同一日期对应数据求和的实现方法

你可以通过以下两种常见方式实现需求:

方法一:使用Map(推荐,保持插入顺序)

利用Map存储日期与对应数值的累计和,遍历原数组完成累加后,再转换为目标数组:

const data = [250, 250, 500, 500];
const labels = ['2022-05-10', '2022-06-10', '2022-07-10', '2022-07-10'];

const sumMap = new Map();

// 遍历数组累加同一日期的数据
for (let i = 0; i < labels.length; i++) {
  const date = labels[i];
  const value = data[i];
  sumMap.set(date, (sumMap.get(date) || 0) + value);
}

// 转换为目标数组
const newLabels = Array.from(sumMap.keys());
const newData = Array.from(sumMap.values());

console.log('const data =', newData); // 输出: const data = [250, 250, 1000]
console.log('const labels =', newLabels); // 输出: const labels = ['2022-05-10', '2022-06-10', '2022-07-10']

方法二:使用普通对象

通过对象的属性存储日期与累计值,同样能实现需求:

const data = [250, 250, 500, 500];
const labels = ['2022-05-10', '2022-06-10', '2022-07-10', '2022-07-10'];

const sumObj = {};

// 遍历累加
for (let i = 0; i < labels.length; i++) {
  const date = labels[i];
  const value = data[i];
  sumObj[date] = (sumObj[date] || 0) + value;
}

// 提取目标数组
const newLabels = Object.keys(sumObj);
const newData = Object.values(sumObj);

console.log('const data =', newData);
console.log('const labels =', newLabels);

核心逻辑说明

  1. 遍历原labels和data数组,将每个日期对应的数值累加到存储结构(Map/对象)中
  2. 从存储结构中提取去重后的日期作为新的labels,提取累计值作为新的data

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:51:22