Angular 角度2管道:如何按多个字段排序?
我有一个清单,上面有以下详细信息,我想按评论最多的那个排序,然后按字母顺序排序Angular 角度2管道:如何按多个字段排序?,angular,sorting,pipes-filters,Angular,Sorting,Pipes Filters,我有一个清单,上面有以下详细信息,我想按评论最多的那个排序,然后按字母顺序排序 [ { "reviews": 9, "name": 'B' }, { "reviews": 9, "name": 'A' }, { "reviews": 15, "name": 'C' }, { "reviews": 9, "name": 'D' },..
[
{
"reviews": 9,
"name": 'B'
}, {
"reviews": 9,
"name": 'A'
}, {
"reviews": 15,
"name": 'C'
}, {
"reviews": 9,
"name": 'D'
},..
]
items.sort(function(a, b) {
return a['reviews'] - b['reviews'];
}
我希望排序的顺序是:C A B D。
我有一个简单的排序管道,可以根据评论对其进行排序,但我希望它在之后按名称进行排序
[
{
"reviews": 9,
"name": 'B'
}, {
"reviews": 9,
"name": 'A'
}, {
"reviews": 15,
"name": 'C'
}, {
"reviews": 9,
"name": 'D'
},..
]
items.sort(function(a, b) {
return a['reviews'] - b['reviews'];
}
谢谢。@Pipe({
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: Array<any>, filter: {[key: string]: any }): Array<any> {
return items.filter(item => {
let notMatchingField = Object.keys(filter)
.find(key => item[key] !== filter[key]);
return !notMatchingField; // true if matches all fields
});
}
}
名称:“过滤器”
})
导出类FilterPipe实现PipeTransform{
转换(项:数组,筛选器:{[key:string]:any}):数组{
返回项目。筛选器(项目=>{
让notMatchingField=Object.keys(过滤器)
.find(key=>item[key]!==filter[key]);
return!notMatchingField;//如果匹配所有字段,则为true
});
}
}
我测试了下面的管道,但它无法按字母顺序对其进行排序。但是,它能够按字母顺序对列表进行排序。我能得到B C D的结果。