等待javascript.find()结果的最佳实践



我经常必须将三元运算符传递给依赖于.find()方法结果的值,因为它在找到值之前返回undefined

const getValue = stateDataA => {
let value = stateDataA.find(item => item.name === stateDataB[0]).name;
return value;
}

这通常是"退货";找不到未定义的"的属性"name";。以下是我如何绕过这一点,但我知道这不可能是最佳的:

let value = stateDataA.find(item => item.name === stateDataB[0]) ? stateDataA.find(item => item.name === stateDataB[0]).name : "placeholder";

我的数据通常使用connect()通过道具传递,并且我将主要组件封装在一个容器中,该容器只在加载状态后加载,所以我认为问题只是find()我的值所需的时间。感谢您的帮助。

?.??是javascript运算符家族中的新成员,但非常受欢迎:

let a = [{name: 1}, {name: 2}, {name: 3}]
console.log(a.find(x => x.name === 2)?.name ?? 'placeholder')
console.log(a.find(x => x.name === 5)?.name ?? 'placeholder')

尝试item?.name。这将检查item是否未定义。如果没有,那么它将跳过以下操作。

最新更新