I want to generate Filter pipe in Angular that works for filtering the Car, Brand and Color array object by it’s pipe parameter corresponding their “carName” , “brandName” etc. property.
For example this pipe is going to filter the Colors by their name corresponding the value of filter pipe parameter.
But I want to do that this pipe filters on all Object types with it’s(Object’s) Name property that i created wherewithal.
To do that, All Objects need to have same “Name” property name. But My Objects has different name properties like;
carName:string (Car)
name:string (Brand)
name:string (Color)
I’ve created a pipe that works successfully on object that only has “name” properties but I can’t make it successful that this pipes works on Car object as well ;
@Pipe({
name: 'filter',
})
export class FilterPipe implements PipeTransform {
transform(entityList: any[], filter: string): any[] {
filteredList: typeof entityList;
if (filter) {
filter = filter.toLocaleLowerCase();
return entityList.filter((c) =>
c.name.toLocaleLowerCase().includes(filter)
);
}
return entityList;
}
}
How can I create a generic Pipe to filter objects with its(Object’s) name property by just the properties of object includes “name” expression ?