查找时具有默认值和三元运算符的可选链接方法



我正在尝试在 array.find 中实现可选的链接。 请参阅下面的代码片段代码,我有以下三种情况

  1. 如果数组为空,我需要有 true//默认情况下为 true
  2. 如果数组没有找到对象,它也应该是 true//空作为 true 值
  3. 如果数组有对象,它应该采用键属性值//true 或 false

但是根据 3 的情况,如果键值为假,则取 2 一

let array = [{
id: 1,
key: false
}, {
id: 2,
key: true
}]
let key =
array && array.length ?
array.find(
(item) => item.id === 1
)?.key || "empty as true value" :
"by default true";

console.log(key)

当左侧值可能是假值时,不能使用||。在访问.key之前,您需要在对象上使用它(这是真实的(

const key = (array?.find(item =>
item.id === 1
) || {key: "empty as true value"}).key;

或者最好使用空合并运算符:

const key = array?.find(item =>
item.id === 1
)?.key ?? "empty as true value";

相关内容

  • 没有找到相关文章