无法读取未定义的属性“ cnt”

时间:2018-10-05 09:34:38

标签: javascript node.js angular ecmascript-6 ecmascript-5

这是我的代码段

pastActions = res['data']['list']['names']['blk'].cnt

但是我看到下面的错误

its throws error as Cannot read property 'cnt' of undefined

这是因为cnt的父级未定义,当这些属性datalistnamesblk中的任何一个为未定义。

我已如下替换

res['data'] && res['data']['list] && res['data']['list']['names'] && res['data']['list']['names']['blk'] && res['data']['list']['names']['blk'].cnt ? res['data']['list']['names']['blk'].cnt : '';

它可以工作,但是有没有优化的方法来检查它?

1 个答案:

答案 0 :(得分:0)

您可以使用lodash _.get函数。当对象中的任何属性未定义时,您可以选择返回默认值。 在这里检查:lodash.com/docs/4.17.10#get