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

如何将日度销售数据对象转换为按分支分组的月度聚合统计对象

实现方案

你可以通过哈希对象做中间分组缓存,用「分支名+年月」作为唯一分组标识完成销售额累加,最终导出数组即可,该方案不会修改原数据,所有统计对象为全新生成:

function calculateMonthlySales(data) {
  // 存储分组中间结果,key规则为「分支|年月」避免重复
  const groupCache = {};

  data.forEach(dailyItem => {
    // 截取年月部分,标准YYYY-MM-DD格式前7位即为YYYY-MM
    const month = dailyItem.date.slice(0, 7);
    const groupKey = `${dailyItem.branch}|${month}`;

    // 首次遇到该分组时初始化统计对象
    if (!groupCache[groupKey]) {
      groupCache[groupKey] = {
        branch: dailyItem.branch,
        date: month,
        sales: 0
      };
    }

    // 累加当月当前分支的销售额
    groupCache[groupKey].sales += dailyItem.sales;
  });

  // 将缓存对象的值转为数组,即为目标月度统计结果
  return Object.values(groupCache);
}

// 调用方法得到结果
const monthlyData = calculateMonthlySales(data);

如果后续日期格式有调整,仅需要修改month字段的提取逻辑即可,整体分组流程无需改动。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:54:04