【问题标题】:Destructuring fallback to prevent undefined error?解构后备以防止未定义的错误?
【发布时间】:2020-04-22 08:44:43
【问题描述】:
我有一个数组列表,我这样做:
const { id } = myArray.find(
(obj) => obj === true)
如果id 不存在,它将引发错误。如何在使用解构的同时防止错误?我想将逻辑保持在一行中。
【问题讨论】:
标签:
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);
我希望这会有所帮助!