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

JavaScript中如何对库存对象做数量扣减后生成新对象

JavaScript 库存扣减计算实现

核心逻辑:遍历全量库存品类,对应品类有预留量的就扣减对应数值,无预留量的保留原库存数值即可。

基础兼容版实现(兼容所有JS运行环境)

var availability = {"bike":10,"cycle":3,"car":1};
var reserved ={"cycle":1,"bike":10};

var response = {};
for (var goodsType in availability) {
  // 无对应预留量时默认取0,避免出现NaN
  var reserveNum = reserved[goodsType] || 0;
  response[goodsType] = availability[goodsType] - reserveNum;
}

// 输出结果:{"bike":0,"cycle":2,"car":1}
console.log(response);

ES6+ 简洁版实现

const availability = {"bike":10,"cycle":3,"car":1};
const reserved ={"cycle":1,"bike":10};

const response = Object.fromEntries(
  Object.entries(availability).map(([type, stock]) => [type, stock - (reserved[type] ?? 0)])
);

补充:如果业务需要避免库存被扣减为负数,可以将扣减逻辑替换为 Math.max(0, stock - (reserved[type] ?? 0))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:24:04