Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当减法到数字0时,如何停止减法_Javascript_Node.js_Express - Fatal编程技术网

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的最小数量,而不是整个应用程序。这甚至不是一个完整的应用程序,请查找注释文本,我知道您可能不想解决此问题,或者懒得阅读我的代码,但给出此代码将使您更好地理解我的意思。欢迎使用堆栈溢出。忠告-要有礼貌,没有人愿意帮助那些称之为“懒惰”的人