Tengo una matriz de objetos como este:
[{ date: 2022-04-07T01:00:00.000+00:00, type: 'profit' amount: 200 },{ date: 2022-04-07T01:00:00.000+00:00, type: 'withdraw' amount: 600 },{ date: 2022-04-07T01:00:00.000+00:00, type: 'invest' amount: 900 },{ date: 2022-04-08T01:00:00.000+00:00, type: 'deposit' amount: 200 },{ date: 2022-04-08T01:00:00.000+00:00, type: 'profit' amount: 200 }]En la fuente de datos, las fechas no están en orden, por lo que estoy ordenando por fecha de esta manera:
this.allTransactions.sort((a: any, b: any) => { return new Date(b.date).getTime() - new Date(a.date).getTime(); });Sin embargo, también necesito ordenar cualquier objeto con la misma fecha por una matriz externa:
['invest', 'withdraw', 'profit'] Estoy luchando con la segunda parte ordenando los grupos de fechas ya ordenados por el orden en la matriz. this.allTransactions está en un bucle *ngFor en Angular 12
Puede agregar una condición adicional después de la actual, que se utilizará si la primera se resuelve como 0
const typeOrder = ['invest', 'withdraw', 'profit'] transactions.sort((a, b) => { return new Date(b.date).getTime() - new Date(a.date).getTime() || typeOrder.indexOf(a.type) - typeOrder.indexOf(b.type) });