为了账号安全,请及时绑定邮箱和手机立即绑定

确保 es6 find 在未定义属性时不会中断

确保 es6 find 在未定义属性时不会中断

收到一只叮咚 2021-05-31 19:32:41
我有这个代码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


查看完整回答
反对 回复 2021-06-03
  • 2 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信