Search code examples
javascriptangularangular2-formsangular2-filtering

Angular2 - Filter array of objects based on value of an object property


I have an array of vehicles objects. I have tabs for different vehicle types for eg. 2-wheeler, 4-wheeler etc. While adding vehicle to the collection I am adding its type so my object kind of looks like this.

vehicles:[{
  key1:{ name: "Altima",type:"4-wheeler" },
  key2:{ name: "Harley",type:"2-wheeler" },
  key3:{ name: "Jeep",type:"4-wheeler" },
}]

Now I am retrieving all vehicles from server and want to add filter on frontend based on type. How can I add the filter for different tabs?


Solution

  • You can implement a pipe using array.filter and use it as follows,

    export class MyFilter implements PipeTransform {
    
        transform(items: any[], term: any[]): any {
          if (!term) 
            return items;
          return items.filter(item => item.prefix.indexOf(term) > -1);
        }
    }