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

如何合并值数组与日期数组并对重复日期的值求平均

计算每日平均值的实现思路与代码

核心思路是先通过reduce统计每个日期对应的值总和以及数据条数,再用总和除以条数得到平均值,最后转换成你需要的格式即可。

步骤1:统计日期对应的总和与数据量

遍历数组,用对象记录每个日期的总值和数据个数:

const values = [100,100,95,80,100,100,87,88,90,40];
const dates = ['03 Dec', '03 Dec', '04 Dec', '04 Dec', '04 Dec', '04 Dec', '05 Dec', '05 Dec', '06 Dec', '06 Dec'];

const stats = dates.reduce((acc, date, index) => {
  const val = values[index];
  // 如果当前日期还没被记录,初始化sum和count
  if (!acc[date]) {
    acc[date] = { sum: 0, count: 0 };
  }
  acc[date].sum += val;
  acc[date].count += 1;
  return acc;
}, {});

步骤2:转换成目标格式

格式一:分离的日期数组与平均值数组

const resultDates = Object.keys(stats);
const resultValues = resultDates.map(date => stats[date].sum / stats[date].count);

// 输出结果
console.log(resultDates); // ['03 Dec', '04 Dec', '05 Dec', '06 Dec']
console.log(resultValues); // [100, 93.75, 87.5, 65]

格式二:键值对对象

const averageObj = Object.fromEntries(
  Object.entries(stats).map(([date, { sum, count }]) => [date, sum / count])
);

// 输出结果
console.log(averageObj); // { '03 Dec': 100, '04 Dec': 93.75, '05 Dec': 87.5, '06 Dec': 65 }

这个方案只需要遍历原始数组一次,后续转换操作效率也很高,完全能处理1000条数据的规模,适配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:50:33