Angular2 - 根据对象属性的值过滤对象数组

问题描述 投票:0回答:2

我有一系列车辆对象。我有不同车型的标签,例如。 2轮车,4轮车等。当我添加车辆时,我添加了它的类型,所以我的对象看起来像这样。

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

现在我从服务器检索所有车辆,并希望根据类型在前端添加过滤器。如何为不同的标签添加过滤器?

javascript angular angular2-forms angular2-filtering
2个回答
1
投票

您可以使用array.filter实现管道并按如下方式使用它,

export class MyFilter implements PipeTransform {

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

1
投票

尝试下面的代码

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


datavehicle = [];


ngOnInit() {
   let vihicledata= this.vehicles[0];
   var array = Object.keys(vihicledata).map(function(k) {
     return vihicledata[k]
   });

    for(let i =0 ;i < array.length;i++){
      if(array[i].type == "4-wheeler"){
        this.datavehicle.push(array[i]);
      }
    }
    console.log('vehicle=>',this.datavehicle)
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.