Lodash isUndefined提供意想不到的结果

我有一个三元节点使用Lodash isUndefined: sendUser.company = _.isUndefined(user.accounts[0].name) ? null : user.accounts[0].name; sendUser.company = _.isUndefined(user.accounts[0].name) ? null : user.accounts[0].name; 但是当我尝试运行它时,我得到TypeError: Cannot read property 'name' of undefined 。 不知道我在这里错过了什么。

你可以使用_.get来保证安全:

 sendUser.company = _.get(user, 'accounts[0].name') || null; 

看起来像账户[0]也可能是未定义的 – 所以你也需要检查这个:

 sendUser.company = ! user.accounts[0] || _.isUndefined(user.accounts[0].name) ? null : user.accounts[0].name; 

你确定user.accounts [0]是实际定义的吗?

这看起来像你试图检查'名称'是未定义的。 从我所了解的_isUndefined()中,它只会查找特定的值,因此无法检查.name属性的状态,因为user.accounts [0]本身是未定义的。

您可以在检查.name属性之前始终检查它。