【问题标题】:TypeScript Sort Object by Object in ArrayTypeScript 按数组中的对象排序对象
【发布时间】:2017-01-13 21:14:03
【问题描述】:

有谁知道如何在任务中按 TaskTime 值对 Array 和 Person 进行排序?

export class Person {
    Id: string;
    Email: string;
    FirstName: string;
    LastName: string;
    Presence: boolean;
    RegisterTime: Date;
    tasks: Array<Task>
}

export class Task {
    TaskName: string;
    DoneTask: boolean;
    TaskTime: number;
}

感谢您的帮助

【问题讨论】:

    标签: arrays typescript


    【解决方案1】:

    尝试按照这种方式对数组进行排序。下面的示例代码将按 blockId 字段的降序对数组进行排序。

    this.itemList.sort((left, right): number => {
      if (left.blockId < right.blockId) return 1;
      if (left.blockId > right.blockId) return -1;
      return 0;
    }); 
    

    【讨论】:

      【解决方案2】:

      javascript Array 对象带有一个内置的sort method,你可以像这样传递一个比较函数:

      function compare(a, b) {
          if (a is less than b by some ordering criterion) {
              return -1;
          }
      
          if (a is greater than b by the ordering criterion) {
              return 1;
          }
      
          // a must be equal to b
          return 0;
      }
      

      所以在你的情况下:

      let person = new Person();
      console.log(person.tasks.sort((task1, task2) => task1.TaskTime - task2.TaskTime));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-05
        • 2020-07-11
        • 1970-01-01
        • 1970-01-01
        • 2018-11-12
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        相关资源
        最近更新 更多