javascript - 解构后备以防止未定义的错误?
问题描述
我有一个数组列表,我这样做:
const { id } = myArray.find(
(obj) => obj === true)
如果id
不存在,它将引发错误。如何在使用解构的同时防止错误?我想将逻辑保持在一行中。
解决方案
一旦条件不满足,这里的问题是.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
以这种方式返回,您也可以解构属性。
此外,如果您需要,您可以根据说明解构语句的文档为解构语句添加默认值,如下所示:
如果从对象中解包出来的值为 ,则可以为变量分配默认值
undefined
。
const { id = 10 } = {};
console.log(id);
我希望这有帮助!
推荐阅读
- node.js - 安装 cosmos gui“npm start”时抛出错误
- r - 在日期格式中包含日期
- python - ransac 后在点云上运行 PCA 会产生奇怪的结果
- excel - Office 显示屏自动更新实时电子表格中的内容
- angular - 更改 url 路径而不重定向
- facebook - 使用 facebook graph API v3.2 从其他 user_id 获取数据
- android - 在 Android Studio 中设置环境变量 GOOGLE_APPLICATION_CREDENTIALS
- angular - 无法渲染通过 BehaviourSubject 接收到的数据
- apache-kafka - Vert.x EventLoop 线程块 Inet6AddressImpl.lookupAllHostAddr
- ruby-on-rails - 在 Rails 控制器中检查 JSON 响应中的值