【问题标题】:Destructuring fallback to prevent undefined error?解构后备以防止未定义的错误?
【发布时间】:2020-04-22 08:44:43
【问题描述】:

我有一个数组列表,我这样做:

const { id } = myArray.find(
        (obj) => obj === true)

如果id 不存在,它将引发错误。如何在使用解构的同时防止错误?我想将逻辑保持在一行中。

【问题讨论】:

  • undefined 的情况下,您可以分配默认值,例如const { id = 10 } = { id: undefined }Destructuring assignment 不确定这是否有帮助。

标签: javascript reactjs object destructuring


【解决方案1】:

这里的问题是,一旦条件不满足,.find() 返回undefined

数组中满足提供的测试功能的第一个元素的值。否则返回undefined

因此,您可能可以使用|| 运算符来检查您是否有从.find() 返回的任何值,或者您可以用空对象{} 替换运算符的右侧。

单线的选项可能如下:

const myArray = [
  { id: 12 },
  { id: 13 },
  { id: 14 }
];

const { id } = myArray.find(e => e.id === 17) || {};

console.log(id);

所以你可以解构id 属性,即使它以这种方式返回undefined

此外,如果您需要,您可以根据Destructuring statement 的说明为您的解构语句添加默认值,如下所示:

如果从对象中解压出来的值为undefined,则可以为变量分配默认值。

const { id = 10 } = {};

console.log(id);

我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2020-12-08
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多