Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度-过滤器在过滤字段为空时抛出错误_Javascript_Angularjs - Fatal编程技术网

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。谢谢你的帮助。它正在工作,现在我无法测试填充了这些字段的顺序,但当它们为空时,我会正确地跳过它们,而不会中断。