2017-01-22 20 views
0

私はこのようなネストされたJSONオブジェクトの配列を持っている:angular2 - パイプ - 複数の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.en.でフィルタリングすることができます 値をname.enname.itにもフィルタリングできるようにするにはどうすればよいですか?

答えて

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 
     ); 
     } 
    } 
} 
関連する問題