Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2管道:如何按多个字段排序?_Angular_Sorting_Pipes Filters - Fatal编程技术网

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的结果。