Я работаю над приложением angular, в котором я могу сортировать данные в порядке возрастания и убывания. Хотя все работает нормально, я хочу оптимизировать свой код, чтобы не повторяться и писать эффективный код.
Вот мой пример данных в консоли Пример данных в консоли
У меня есть массив объектов, где я хочу отсортировать данные в порядке возрастания и убывания onclick. Каждый раз, когда я Вызов функции для каждого поля. Есть ли лучший способ сделать это
Вот мой код
data.ts
sortedData
]
private isAscendingSort: boolean = false;
sortByMaxCases(sortedDataBasedOnDate) {
this.isAscendingSort = !this.isAscendingSort;
console.log(this.isAscendingSort)
sortedDataBasedOnDate.forEach(item => item.statewise.sort(function (a, b) {
if (b.confirmed < a.confirmed) {
return -1;
}
if (b.confirmed > a.confirmed) {
return 1;
}
return 0;
}))
if (!this.isAscendingSort) {
console.log(this.isAscendingSort)
sortedDataBasedOnDate.forEach(item => item.statewise.sort(function (a, b) {
if (a.confirmed < b.confirmed) {
return -1;
}
if (a.confirmed > b.confirmed) {
return 1;
}
return 0;
}))
}
}
// similary I have
sortAscendingActive(sortedData)(){..} // here with same logic compairig a.active > b.active
sortAscendingActive(sortedData){....} // compairig a.confirm > b.confirm
sortAscendingActive(sortedData){..} // compairig a.death> b.death
data.component. html
<tr>
<th (click)="sortAscending(sortedData)"> State </th>
<th (click)="sortAscendingActive(sortedData)"> Active Cases </th>
<th (click)="sortAscendingConfirmed(sortedData)"> Confirmed Cases </th>
<th (click)="sortAscendingDeath(sortedData)"> Death </th>
</tr>
Здесь я получаю целые данные в SortedData, а затем выполняю сортировку по щелчку функции, но это выглядит так неуклюже. Есть лучший способ сделать мой код эффективным