一个对象,有多层嵌套,怎么方便的判断某个属性的值

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
image.png
但是需要注意,如果整个表达式返回值为false,会返回第一个false的值:
image.png

以上是 一个对象,有多层嵌套,怎么方便的判断某个属性的值 的全部内容, 来源链接: utcz.com/a/35223.html

回到顶部