Javascript 当减法到数字0时,如何停止减法
Javascript 当减法到数字0时,如何停止减法,javascript,node.js,express,Javascript,Node.js,Express,module.exports=功能购物车(oldCart){ this.items=oldCart.items | |{}; this.totalQty=oldCart.totalQty|124; 0; this.totalPrice=oldCart.totalPrice | | 0; this.add=函数(项目、id、图像){ 让storedItem=this.items[id]; 如果(!storedItem){ storedItem=this.items[id]={item:item,i
module.exports=功能购物车(oldCart){
this.items=oldCart.items | |{};
this.totalQty=oldCart.totalQty|124; 0;
this.totalPrice=oldCart.totalPrice | | 0;
this.add=函数(项目、id、图像){
让storedItem=this.items[id];
如果(!storedItem){
storedItem=this.items[id]={item:item,image:image,数量:0,价格:0,id:id};
}
storedItem.数量++;
storedItem.price=storedItem.price*storedItem.qty;
这个.totalQty++;
this.totalPrice+=storedItem.price;
};
this.reduceByOne=函数(id){
此.items[id]。数量--;
this.items[id].price-=this.items[id].item.price;
此.totalQty--;
this.totalPrice-=this.items[id].item.price;
//最小数字0
};
this.addByOne=函数(id){
此.items[id]。数量++;
this.items[id].price+=this.items[id].item.price;
这个.totalQty++;
this.totalPrice+=this.items[id].item.price;
};
this.removietem=函数(id){
this.totalQty-=此.items[id].数量;
this.totalPrice-=this.items[id].item.price;
删除此项。项目[id];
};
this.generatarray=函数(){
var-arr=[];
for(此.items中的变量id){
arr.push(此项目[id]);
}
返回arr;
};
}
执行减法运算的两个函数都可以处理以下问题:
this.totalPrice = Math.max(0, this.totalPrice - this.items[id].item.price);
而不是
this.totalPrice -= this.items[id].item.price;
请注意,Math.max
不包括可能的NaN
或者,也可以使用访问器执行此操作:
get total() {
return this._total || 0;
}
set total(v) {
if (v >= 0)
this._total = v;
}
这还包括默认值,如
This.totalPrice=oldCart.totalPrice | | 0
,只需检查商品数量是否为0,如果为0,只需返回,无需执行任何操作
this.reduceByOne = function(id) {
if(this.items[id].qty == 0) return;
this.items[id].qty--;
this.items[id].price -= this.items[id].item.price;
this.totalQty--;
this.totalPrice -= this.items[id].item.price;
};
欢迎来到StackOverflow。这个问题太宽泛了,请回顾:我已经缩小了问题的范围,不确定您想告诉我什么?您需要提供一个最低限度的代码示例,仅显示您正在寻求帮助的问题,而不是整个项目代码。这里的问题是关于0的最小数量,而不是整个应用程序。这甚至不是一个完整的应用程序,请查找注释文本,我知道您可能不想解决此问题,或者懒得阅读我的代码,但给出此代码将使您更好地理解我的意思。欢迎使用堆栈溢出。忠告-要有礼貌,没有人愿意帮助那些称之为“懒惰”的人