Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Angular 按多个值过滤(角度2/7,类型脚本)_Angular_Typescript_Filter - Fatal编程技术网

Angular 按多个值过滤(角度2/7,类型脚本)

Angular 按多个值过滤(角度2/7,类型脚本),angular,typescript,filter,Angular,Typescript,Filter,我无法按多个值筛选“listProduct”。如何按多个值进行筛选 我试过用逗号写,但没用。我在“谷歌”中找不到解决方案 searchFilter=()=>{ this.listProducts=this.listProductsOrigin.filter(e=> e、 name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase()) ); 这一点:加载=错误; //tslint:禁用下一行:分号 }; 我试过这样做

我无法按多个值筛选“listProduct”。如何按多个值进行筛选

我试过用逗号写,但没用。我在“谷歌”中找不到解决方案

searchFilter=()=>{
this.listProducts=this.listProductsOrigin.filter(e=>
e、 name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase())
);
这一点:加载=错误;
//tslint:禁用下一行:分号
};
我试过这样做:

searchFilter=()=>{
this.listProducts=this.listProductsOrigin.filter(e=>
e、 name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase()),
e、 description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase())
);
这一点:加载=错误;
//tslint:禁用下一行:分号
};
但不起作用。

试试:

searchFilter = () => {
    this.listProducts = this.listProductsOrigin.filter(e =>
      e.name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase()) 
      || e.description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase())
    );
    this.loading = false;
    // tslint:disable-next-line: semicolon
};
尝试:


typescript编译器应该警告您尝试的解决方案。
filter()
方法使用一个返回布尔值的函数,因此您可能需要如下内容:

this.listProducts = this.listProductsOrigin.filter(e =>
      e.name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase()) || e.description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase())
    );
或者可能:

this.listProducts = this.listProductsOrigin.filter(e =>
      e.name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase()) && e.description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase())
    );

根据您是否希望将筛选子句与AND或or操作相结合,typescript编译器应警告您尝试的解决方案。
filter()
方法使用一个返回布尔值的函数,因此您可能需要如下内容:

this.listProducts = this.listProductsOrigin.filter(e =>
      e.name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase()) || e.description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase())
    );
或者可能:

this.listProducts = this.listProductsOrigin.filter(e =>
      e.name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase()) && e.description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase())
    );

根据您是否希望将筛选器子句与AND或or操作相结合,您需要在两个条件之间执行
|
,如下所示:
searchFilter=()=>{this.listProducts=this.listProductsOrigin.filter(e=>e.name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase())| | e.description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase());this.loading=false;//tslint:禁用下一行:分号}
您需要在两个条件之间执行以下操作:
searchFilter=()=>{this.listProducts=this.listProductsOrigin.filter(e=>e.name.toLocaleLowerCase().includes(this.searchValue.toLocaleLowerCase())| e.description.toLocaleLowerCase().includes(this.searchValueDesc.toLocaleLowerCase());this.loading=false;//tslint:禁用下一行:分号}仅按第一个标准进行良好搜索第二个变量中仅按第一个标准进行良好搜索查找是正确的,但空值不起作用不100%确定我是否在跟踪您,但当然,如果您尝试对null或未定义的内容调用
toLocaleLowerCase()
,则您将遇到错误。如果没有更多信息,将很难进行调试。例如,您可以先过滤掉所有空白(假设它们被排除而不是包括在内)但这确实是一个不同的问题……如果值为空,则输出的所有结果在第二个变量find中是正确的,但空值不起作用不是100%确定我在跟踪您,但当然,如果您尝试对null或未定义的对象调用
toLocaleLowerCase()
,则您将遇到错误。如果没有更多信息,将很难进行调试。例如,您可以过滤掉所有的空白(假设它们被排除而不是包括在内),但这确实是一个不同的问题……如果值为空,则输出所有结果