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

NodeJS实现指定日期区间内各ID销售额统计需求

NodeJS 统计指定时间段内各ID总销售额

实现步骤

  • 从目标URL获取JSON数据
  • 筛选出2021年1月1日至2023年12月31日的数据
  • 按ID分组累加对应销售额
  • 转换为期望的数组输出格式

代码示例

// Node.js 18+可直接用内置fetch;低于18版本需先安装node-fetch:npm install node-fetch
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));

async function calculateTotalSales() {
  try {
    // 1. 获取JSON数据
    const response = await fetch('你的数据来源URL');
    const data = await response.json();

    // 定义时间范围的起止节点
    const startDate = new Date('2021-01-01T00:00:00.000Z');
    const endDate = new Date('2023-12-31T23:59:59.999Z');

    // 2. 过滤出指定时间段内的数据
    const filteredData = data.filter(item => {
      const itemDate = new Date(item.date);
      return itemDate >= startDate && itemDate <= endDate;
    });

    // 3. 按ID分组累加销售额
    const salesSummary = {};
    filteredData.forEach(item => {
      if (!salesSummary[item.ID]) {
        salesSummary[item.ID] = 0;
      }
      salesSummary[item.ID] += item.sales;
    });

    // 4. 转换为目标数组格式
    const result = Object.entries(salesSummary).map(([ID, totalsales]) => ({
      ID,
      totalsales
    }));

    console.log(result);
    return result;
  } catch (error) {
    console.error('数据处理出错:', error);
  }
}

// 执行统计函数
calculateTotalSales();

代码说明

  • 时间过滤:将字符串日期转为Date对象,通过时间戳比较筛选出符合范围的数据
  • 分组累加:用普通对象作为临时存储容器,以ID为键累计对应销售额
  • 格式转换:通过Object.entries将键值对结构转为数组,再映射成需求的对象格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:12:53