【问题标题】:Sorting in ascending and descending order Angular2Angular2的升序和降序排序
【发布时间】:2025-12-05 11:00:01
【问题描述】:

如何不仅通过增加而且通过减少来实现排序? 这是只能按向上名称和标识符排序的代码。 如何更改它以便它仍然可以按降序排序?

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>

【问题讨论】:

    标签: angular typescript


    【解决方案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));
    

    【讨论】: