Javascript 角度-过滤器在过滤字段为空时抛出错误
我有个小问题。当我在数组上进行过滤时,若过滤字段为空,我总是会得到错误和失败后的剩余代码。这是我的代码:Javascript 角度-过滤器在过滤字段为空时抛出错误,javascript,angularjs,Javascript,Angularjs,我有个小问题。当我在数组上进行过滤时,若过滤字段为空,我总是会得到错误和失败后的剩余代码。这是我的代码: this.order= result.headerText.find((item) => item.textType === 'Order'); 若我有带有“Order”的texttype,一切正常,但若我的texttype为null,它会抛出错误,其余的代码不会执行 我如何检查是否有带Order的textType并返回它,当它为null时不会崩溃:) headerText中的“项
this.order= result.headerText.find((item) => item.textType === 'Order');
若我有带有“Order”的texttype,一切正常,但若我的texttype为null,它会抛出错误,其余的代码不会执行
我如何检查是否有带Order的textType并返回它,当它为null时不会崩溃:)
headerText中的“项”可能为空,但不是textType
this.order = result.headerText && result.headerText.find((item) => item && item.textType === 'Order');
如果您使用最新版本的typescript,则可以使用可选的链接方案
this.order = result.headerText?.find((item) => item?.textType === 'Order');
headerText中的“项”可能为空,但不是textType
this.order = result.headerText && result.headerText.find((item) => item && item.textType === 'Order');
如果您使用最新版本的typescript,则可以使用可选的链接方案
this.order = result.headerText?.find((item) => item?.textType === 'Order');
find()是属于数组类型的函数。从result.headerText获得的结果为null或不是数组时出错
例如,你可以考虑这样检查:
if (result.headerText && Array.isArray(result.headerText)) {
return result.headerText.find(item => item.textType === 'Order')
}
return undefined;
find()是属于数组类型的函数。从result.headerText获得的结果为null或不是数组时出错
例如,你可以考虑这样检查:
if (result.headerText && Array.isArray(result.headerText)) {
return result.headerText.find(item => item.textType === 'Order')
}
return undefined;
谢谢你的回复。当我尝试它时,仍然得到:ERROR-TypeError:result.headerText.find在两种解决方案中都不是函数。@user2565525我知道headerText不是数组,我在上面更新了解决方案。我尝试过:让order=result.headerText&&res.headerText.find((item)=>item&&item.textType==='order');但我还是犯了同样的错误。我做错了什么?标题文本与textType和textItem相同。当文本类型不是null时,一切正常,但null会让我崩溃:)。我尝试了let order,只是为了确保问题不在这个。order类型为headerText@user2565525在分配值之前,将此
console.log(result.headerText)
放入并显示output@user2565525,正如我所提到的,它是一个对象而不是数组。find()支持数组而不是object谢谢您的回复。当我尝试它时,仍然得到:ERROR-TypeError:result.headerText.find在两种解决方案中都不是函数。@user2565525我知道headerText不是数组,我在上面更新了解决方案。我尝试过:让order=result.headerText&&res.headerText.find((item)=>item&&item.textType==='order');但我还是犯了同样的错误。我做错了什么?标题文本与textType和textItem相同。当文本类型不是null时,一切正常,但null会让我崩溃:)。我尝试了let order,只是为了确保问题不在这个。order类型为headerText@user2565525在分配值之前,将此console.log(result.headerText)
放入并显示output@user2565525,正如我所提到的,它是一个对象而不是数组。find()支持数组而不支持ObjectHi Gregory。谢谢你的帮助。它正在工作,现在我无法测试填充了这些字段的顺序,但是当它们为空时,我正确地跳过它们而不中断。嗨,Gregory。谢谢你的帮助。它正在工作,现在我无法测试填充了这些字段的顺序,但当它们为空时,我会正确地跳过它们,而不会中断。