一个对象,有多层嵌套,怎么方便的判断某个属性的值
function test(param) {let output;
if(param.a &&
param.a.b &&
param.a.b.c &&
param.a.b.c.d
) {
output = param.a.b.c.d;
}
}
比如,我要知道里面parma中的b,那么要经过这样的多层判断
有没有简单一些的方法呢
回答
这是个好问题,日常编码太多场景要处理这种情况了;显然地,ECMAScript委员会应该也注意到了广大程序员的这个需求,所以同学 ECMAScript最新的语法 optional chaining operator "?." 了解一下,文档传送门:
https://developer.mozilla.org...
function test(param) { let output;
if(param?.a?.b?.c?.d) {
output = param.a.b.c.d;
}
}
楼上说的optional chaining operator "?."是一个很好的方法,但是有些地方并不支持新的语法。这些地方你可以尝试使用:
output = param.a && param.a.b && param.a.b.c && param.a.b.c.d
这种连续与的表达式,如果整个表达式结果为真,会返回最后的param.a.b.c.d
:
但是需要注意,如果整个表达式返回值为false,会返回第一个false的值:
以上是 一个对象,有多层嵌套,怎么方便的判断某个属性的值 的全部内容, 来源链接: utcz.com/a/35223.html