我有一组嵌套的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.it
值?
答案 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
);
}
}
}