angular2 - pipe - 过滤多个json值

时间:2017-01-22 19:06:01

标签: javascript json angular typescript

我有一组嵌套的json对象,如下所示:

[{name: {en:'apple',it:'mela'}},{name:{en:'coffee',it:'caffè'}}]

我想要一个管道来过滤每个具有与给定参数匹配的值的对象。

为此,我创建了一个使用Array.prototype.filter的管道,如下所示:

@Pipe({
    name: 'search'
})    
export class SearchPipe implements PipeTransform {

        transform(items: any[], args: string): any {
           if(!args){
            return items;
           } else {
           return items.filter(item => item.name.en.toLowerCase().indexOf(args[0]) !== -1); //returns every name.en values matching with args

           }
        }   
    }

这允许我按名称过滤。 如何才能过滤name.enname.it值?

1 个答案:

答案 0 :(得分:0)

过滤时可以使用OR运算符。

@Pipe({
    name: 'search'
})    
export class SearchPipe implements PipeTransform {
    transform(items: any[], args: string): any {
      if (!args){
        return items;
      } else {
        return items
          .filter(item => 
            item.name.en.toLowerCase().indexOf(args[0]) !== -1 || item.name.it.toLowerCase().indexOf(args[1]) !== -1 
          );
      }
    }   
}