我在Node中使用了一个使用Lodash isndefined的三元组:
sendUser.company = _.isUndefined(user.accounts[0].name) ? null : user.accounts[0].name;
但是当我尝试运行它时,我得到了
TypeError: Cannot read property 'name' of undefined
。不知道我在这里缺少什么。
答案 0 :(得分:2)
似乎帐号[0]也可能未定义 - 所以你也需要检查这个:
sendUser.company = ! user.accounts[0] || _.isUndefined(user.accounts[0].name) ? null : user.accounts[0].name;
答案 1 :(得分:2)
您确定user.accounts [0]是否已实际定义?
这看起来像是在试图检查是否' name'未定义。根据我对_isUndefined()的理解,它只会查找特定的值,因此无法检查.name属性的状态,因为user.accounts [0]本身是未定义的。
在检查.name属性之前,您也可以随时检查它。
答案 2 :(得分:0)
您可以使用_.get确保安全:
sendUser.company = _.get(user, 'accounts[0].name') || null;