我有这个代码const arr = [{ id: 1, name: 'anything'}, { id: 2, name: 'something'}]const target = [1]我想找到目标是否有 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始终具有名称属性,如果arr是动态的并且南方来自外部方,我必须这样做。还有其他方法可以解决这个问题吗?
2 回答
largeQ
TA贡献2039条经验 获得超7个赞
您可以使用空对象{}
和||
运算符。
(arr.find(o => target.includes(o.id)) || {}).name
如果find()
将返回undefined
这样的表达式会{}
,并尝试获取name
来自{}
这undefined
添加回答
举报
0/150
提交
取消