如果检查javascript,则允许零(0)

时间:2017-01-02 17:19:25

标签: javascript

我使用present或not作为标志然后执行相关操作。就像我的情况一样,我用股票或等级或两者做某事。猜猜是什么问题?

stock = parseInt(req.body.stock),
grade = parseInt(req.body.grade),

var update = {};

if(stock){
  update = {'data.$.stock':stock}
}

if(grade){
  update = {'data.$.grade':grade}
}

if(stock && grade){
  update = {
    'data.$.grade':grade,
    'data.$.stock':stock
  }
}

如果在这种情况下允许存货0,则会出现错误。因此,如果库存为零,则会发生错误。因为它没有通过if(stock){},嗯如何解决这个问题?

如果股票不是undefined&&;我不想写。库存不是null,这太长了。

3 个答案:

答案 0 :(得分:3)

只需比较大于或等于0的股票:

if (stock >= 0)

答案 1 :(得分:3)

您可以通过分配属性来简化代码,而不是分配整个对象。

stock = parseInt(req.body.stock),
grade = parseInt(req.body.grade),

var update = {};

if (stock >= 0) { 
    update['data.$.stock'] = stock; // set property
}

if (grade >= 0) {
    update['data.$.grade'] = grade; // set property
}

// skip part for assigning both

答案 2 :(得分:1)