按升序和降序排序Angular2

时间:2018-02-01 06:45:12

标签: angular typescript

如何实现排序不仅可以增加,还可以减少? 以下是只能通过向上名称和标识符对其进行排序的代码。 如何更改它以便仍然可以按降序排序?

sortType(sort: string){
    if(sort === 'id') {
        this.projects = this.projects.sort(this.sortByID); 
        console.log(this.projects);
    }

    if(sort === 'name') {
        this.sprWellpads = this.projects.sort(this.sortByName); 
        console.log(this.projects);
    }
}

sortByName(a: Project, b: Project){
  if(a.name > b.name)  return 1
    else if (a.name == b.name)return 0
  else return -1
}

sortByID(a: Project, b: Project){
    return parseInt(a.id.toString())-parseInt(b.id.toString());
}

HTML:

<a class="sorting" (click)="sortType('id')" [class.active]="sortBy === 'id'" ><a class="title">ID⬇</a></a>
<a class="sorting" (click)="sortType('name')" [class.active]="sortBy === 'name'"><a class="title">Name⬇</a></a>

1 个答案:

答案 0 :(得分:1)

使用TypeScript订购对象数组:

let values = ["B_Value", "C_Value", "A_Value"];

// Ascending

values.sort((a,b) => 0 - (a > b ? -1 : 1));

// Descending

values.sort((a,b) => 0 - (a > b ? 1 : -1));