Angular2 - 根据对象的值过滤对象数组 属性
Angular2 - Filter array of objects based on value of an object property
我有一组车辆对象。我有不同车辆类型的标签,例如。 2 轮车、4 轮车等。在将车辆添加到集合中时,我正在添加它的类型,因此我的对象看起来像这样。
vehicles:[{
key1:{ name: "Altima",type:"4-wheeler" },
key2:{ name: "Harley",type:"2-wheeler" },
key3:{ name: "Jeep",type:"4-wheeler" },
}]
现在我正在从服务器检索所有车辆,并想在前端根据类型添加过滤器。如何为不同的标签添加过滤器?
您可以使用 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);
}
}
试试下面的代码
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)
}
我有一组车辆对象。我有不同车辆类型的标签,例如。 2 轮车、4 轮车等。在将车辆添加到集合中时,我正在添加它的类型,因此我的对象看起来像这样。
vehicles:[{
key1:{ name: "Altima",type:"4-wheeler" },
key2:{ name: "Harley",type:"2-wheeler" },
key3:{ name: "Jeep",type:"4-wheeler" },
}]
现在我正在从服务器检索所有车辆,并想在前端根据类型添加过滤器。如何为不同的标签添加过滤器?
您可以使用 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);
}
}
试试下面的代码
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)
}