Создайте поисковую трубу для фильтра, как показано ниже. он будет принимать первый параметр в качестве основного объекта, который удерживает все значение и второй объект удержания параметра, который вы должны фильтровать из основного.
Определение объектов:
data: any[];
searchValue:any[];
constructor(){
this.data = [ 'apple', 'banana', 'carrot', 'pear', 'peach', 'orange','mango', 'grapes', 'lime', 'lemon' ];
this.searchValue = [ 'apple', 'peach', 'orange' ]
}
Поиск труб:
export class SearchPipe implements PipeTransform {
transform(items:any[], args:string[]):any[] {
if (typeof items === 'object') {
var resultArray = [];
if (args.length === 0) {
resultArray = items;
}
else {
for (let item of items) {
if (item != null && args.indexOf(item)>=0) {
resultArray.push(item);
}
}
}
return resultArray;
}
else {
return null;
}
}
}
HTML:
<div class="item" *ngFor="let item of data | searchPipe: searchValue">
{{item}}
</div>
Выход:
спасибо за сообщение, но моя цель - фильтровать массив, используя свойства объекта. –
Я думаю, что мой пост может помочь вам, вы должны, возможно, внести некоторые изменения в свою логику –