我有这个代码
const arr = [{
id: 1,
name: 'anything'
}, {
id: 2,
name: 'something'
}]
const target = [1]
我想知道target是否有1并且我想要name属性值
我会做
arr.find(o => target.includes(o.id)).name
但是如果
这就会中断 arr.find(o => target.includes(o.id))
没有name
属性,它会破坏整个应用程序并引发错误。
那么如何确保不崩溃呢?我可以做到这一点,但它很难看
const somethingValue = arr.find(o => target.includes(o.id)) && arr.find(o => target.includes(o.id)).name
或者我必须映射以确保 arr
总是有 name 属性,如果 arr
我必须这样做充满活力,南方来自外部。
还有什么办法可以解决这个问题吗?
最佳答案
您可以使用空对象{}
和||
运算符。
(arr.find(o => target.includes(o.id)) || {}).name
如果 find()
将返回 undefined
,则表达式的计算结果将为 {}
并尝试获取 name
来自{}
,它是未定义
关于javascript - 确保 es6 find 在未定义属性时不会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56183877/