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
相关产品推荐
相关产品推荐

