2016-09-06 4 views
1

Кто-нибудь знает, как сортировать массив с человеком по значению TaskTime в задачах?TypeScript Сортировка объекта по объекту в массиве

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; 
} 

Спасибо за помощь

ответ

4

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)); 
0

Попробуйте выполнить такой способ сортировки массива. Ниже приведен пример кода сортировки массива в порядке убывания поля blockId.

this.itemList.sort((left, right): number => { 
    if (left.blockId < right.blockId) return 1; 
    if (left.blockId > right.blockId) return -1; 
    return 0; 
}); 
Смежные вопросы