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;