NodeJS检查对象属性是否为空。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS检查对象属性是否为空。相关的知识,希望对你有一定的参考价值。
我在nodejs上工作,我想检查我的对象属性是否在使用过滤器时不是空的。
propositions = propositions.filter((prop) =>
return prop.issuer.city.equals(req.user.city._id);
);
prop.issuer
在某些时候可能是空的,我想避免在它是空的时候进行比较。
我试过了,但是没有用。
propositions = propositions.filter((prop) =>
return prop.issuer?.city.equals(req.user.city._id);
);
答案
你使用的?语法是下一代JS,并不是所有浏览器都支持(不知道Node是否支持,但如果支持,可能不是所有版本的Node都支持)。
return prop.issuer?.city.equals(req.user.city._id)
不过你可以只使用简单的if语句来克服这个问题(这是在Babel等下一代JS工具中幕后发生的事情)。
下面是一个例子。
propositions = propositions.filter(prop =>
//this if will allow all items with props.issuer to pass through
//could return false if you want to filter out anything without prop.issuer instead
//Note null==undefined in javascript, don't need to check both
if(prop.issuer==undefined)return true;
//below will only be made if prop.issuer is not null or undefined
return prop.issuer.city.equals(req.user.city._id)
)
另一答案
propositions = propositions.filter(prop => prop.issuer ? prop.issuer.city.equals(req.user.city._id) : false)
我假设你想过滤掉 命题 与 null
发行人这就是为什么我用 false
作为三元操作数的第三个操作数,如果我说错了,就用 true
.
以上是关于NodeJS检查对象属性是否为空。的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS - 如何检查 MySQL 结果是不是未定义/为空?
Javascript:检查对象是不是没有属性或映射/关联数组是不是为空[重复]