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;
我在 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;