簡體   English   中英

angular2-管道-過濾多個json值

[英]angular2 - pipe - filter multiple json values

我有一個像這樣的嵌套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

過濾時可以使用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 
          );
      }
    }   
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM