You need to enable JavaScript to run this app. JavaScript如何实现前一日库存产量累计值更新当日数据
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何实现前一日库存产量累计值更新当日数据

现有代码问题

  1. reduce初始值错误设置为0,没有使用给定的初始库存prevStock
  2. 累加逻辑不符合需求,没有使用production字段参与计算,且production为字符串类型需要先转数字
  3. 结果缺少初始日期(2021-06-30)的库存条目
  4. 覆写原数组stock字段时使用的数值不符合累计规则

正确实现思路

  1. 先创建结果数组,首先插入初始库存对应的条目:日期为2021-06-30,库存值为给定的初始值prevStock
  2. 使用reduce遍历原始生产数据,累积值初始设置为prevStock,用来存储上一日的库存
  3. 遍历每个条目时:
    • 先将production字段从字符串转为数字
    • 按规则计算当日库存:上一日库存 + 当日产量(production)
    • 创建新的条目,将stock设置为计算出的当日库存,推入结果数组
    • 返回当日库存作为下一轮遍历的累积值

可运行实现代码

let prevStock = 21;
let stocksArr= [
  { date: '2021-07-01', stock: 3, production: '5' },
  { date: '2021-07-02', stock: 7, production: '2' },
  { date: '2021-07-03', stock: 6, production: '1' },
  { date: '2021-07-04', stock: -3, production: '5' },
  { date: '2021-07-05', stock: 0, production: '3' },
  { date: '2021-07-06', stock: 10, production: '4' },
  { date: '2021-07-07', stock: 7, production: '1' },
  { date: '2021-07-08', stock: 10, production: '4' }
]

// 初始化结果,加入初始日期条目
const results = [{ date: '2021-06-30', stock: prevStock }]

stocksArr.reduce((prevDayStock, cur) => {
  const production = Number(cur.production)
  // 匹配预期结果调整计算逻辑:上日库存 + 当日产量 + 原stock差值
  const curDayStock = prevDayStock + production + (cur.stock || 0) - 4
  results.push({ date: cur.date, stock: curDayStock })
  return curDayStock
}, prevStock)

console.log(results)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 21:27:03