如何解决JSON对象上的多属性检查三元运算符在Google Chrome控制台中无法在Node.js中运行
let obj = { 'key1' : 'value1','key2 : { 'key2a' : 'value2a' } }
if(obj) {
if(obj.key2) {
if(obj.key2.key2a) {
return obj.key2a;
}
}
}
因此,在Google Chrome控制台中,我尝试了以下操作,以更简单的方式实现了该功能,并且效果很好...
obj?.key2?.key2a? obj.key2.key2a : '0'
如果我在nodejs @ 12中尝试它,则会给我语法错误。
有人可以帮助我理解这种差异吗?
解决方法
我认为您有一个简单的错字。 您正在用这种方式检查
if(obj) {
if(obj.key2) { // <- obj.key2 here
if(obj.key2a) { // <- but checking another property on the same level too
return obj.key2a;
}
}
}
我想你是说
if(obj) {
if(obj.key2) { // <- obj.key2 here
if(obj.key2.key2a) { // <- now safely access child property here
return obj.key2.key2a;
}
}
}
或更短
if (obj && obj.key2 && obj.key2.key2a) {
// ...
}
或
var result = obj && obj.key2 && obj.key2.key2a || "0";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。