angular - 当过滤字段为空时过滤器抛出错误
angular - filter throws error when filtered field is null
我有个小问题。当我在数组上进行过滤时,如果过滤字段为空,我总是会收到错误消息,并且在失败后的其余代码。这是我的代码:
this.order= result.headerText.find((item) => item.textType === 'Order');
如果我的文本类型为 'Order',一切都很好,但如果我的文本类型为 null,它会抛出错误,其余代码不会执行。
我如何检查是否有带有 Order 的 textType 和 return 它以及当它为 null 时它不会崩溃:)
可能 headerText 中的 'item' 为 null 但 textType 不是 null
this.order = result.headerText && result.headerText.find((item) => item && item.textType === 'Order');
如果你使用最新版本的打字稿,你可以使用可选的链接建议
this.order = result.headerText?.find((item) => item?.textType === 'Order');
find()是属于数组类型的函数。您得到的错误是 result.headerText 为空或不是数组。
例如,您可以考虑这样检查:
if (result.headerText && Array.isArray(result.headerText)) {
return result.headerText.find(item => item.textType === 'Order')
}
return undefined;
我有个小问题。当我在数组上进行过滤时,如果过滤字段为空,我总是会收到错误消息,并且在失败后的其余代码。这是我的代码:
this.order= result.headerText.find((item) => item.textType === 'Order');
如果我的文本类型为 'Order',一切都很好,但如果我的文本类型为 null,它会抛出错误,其余代码不会执行。
我如何检查是否有带有 Order 的 textType 和 return 它以及当它为 null 时它不会崩溃:)
可能 headerText 中的 'item' 为 null 但 textType 不是 null
this.order = result.headerText && result.headerText.find((item) => item && item.textType === 'Order');
如果你使用最新版本的打字稿,你可以使用可选的链接建议
this.order = result.headerText?.find((item) => item?.textType === 'Order');
find()是属于数组类型的函数。您得到的错误是 result.headerText 为空或不是数组。
例如,您可以考虑这样检查:
if (result.headerText && Array.isArray(result.headerText)) {
return result.headerText.find(item => item.textType === 'Order')
}
return undefined;