此时,我检查node.js对象中的元素是否存在,并通过以下操作获得值:
if(req.body.name) item.name = req.body.name;但是,如果我想对布尔元素执行同样的操作,它就不能工作。如果传递的布尔值为true,则没有问题,但如果传递的布尔值为false,则If语句将失败,但是,我需要它的值:
if(req.body.active) item.active = req.body.active; // works only if true是否有更好的方法来检查对象中的元素是否存在并验证它的布尔值?
发布于 2017-08-01 12:50:55
几个,你可能想加入:
if("active" in req.body)发布于 2017-08-01 13:22:18
此时,我检查node.js对象中的元素是否存在,并通过以下操作获得值: if(req.body.name) item.name = req.body.name;
如果req.body.name是空字符串,这也会“失败”(输入引号,因为空名称很奇怪,但可能不是错误)。
我可以想到以下几点:
if ('name' in req.body)if (req.body.hasOwnProperty('name')if (typeof req.body.name === 'boolean')还是if (typeof req.body.name !== 'undefined')然而,它们都有其优点和缺点,为了完整起见,我想指出这一点:
tyepof的事情(但在现代浏览器中可能是不可能的),那么tyepof就会失败。hasOwnProperty失败,但它是继承的。in不需要(根据用例的不同,这可能是不需要的)发布于 2017-08-01 12:53:29
您可以使用布尔值检查,然后计算值。
item.active = typeof req.body.name === 'boolean' && req.body.namehttps://stackoverflow.com/questions/45438297
复制相似问题