Lodash isUndefined 提供意想不到的结果

Lodash isUndefined providing unexpected result

我在 Node 中有一个使用 Lodash isUndefined 的三元组: sendUser.company = _.isUndefined(user.accounts[0].name) ? null : user.accounts[0].name; 但是当我尝试 运行 时,我得到了 TypeError: Cannot read property 'name' of undefined。不确定我在这里遗漏了什么。

似乎 accounts[0] 也可能未定义 - 所以您也需要检查一下:

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

你确定 user.accounts[0] 确实被定义了吗?

您似乎在尝试检查 'name' 是否未定义。根据我对 _isUndefined() 的理解,它只会查找特定值,因此无法检查 .name 属性 的状态,因为 user.accounts[0] 本身是未定义的。

在检查 .name 属性.

之前,您也可以随时检查它

您可以使用 _.get 来确保安全:

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