Así que para un poco de contexto, mi objeto es
const obj: {[key: string]: any} = { "1000": { "time": "2022-05-14T10:00:00:000Z", "availableSlots": 0, "availability": false }, "1400": { "time": "2022-05-14T14:00:00:000Z", "availableSlots": 4, "availability": true }, "0800": { "time": "2022-05-14T08:00:00:000Z", "availableSlots": 3, "availability": true }, "0830": { "time": "2022-05-14T08:30:00:000Z", "availableSlots": 2, "availability": true } }y quiero que mi objeto esté ordenado por clave. Cuando ordeno mis entradas de Objeto, puedo ordenarlas por claves usando
const x = Object.entries(obj).sort((a,b): number => { if (parseInt(a[0]) > parseInt(b[0])) { return 1 } return -1 })Pero cuando intento reducirlo para volver a convertirlo en un objeto, no vuelve a ordenarse
const x = Object.entries(obj).sort((a,b): number => { if (parseInt(a[0]) > parseInt(b[0])) { return 1 } return -1 }).reduce((prev, [hour, hourInfo]) => ({ ...prev, [hour]: hourInfo }), {})Compilador en línea del problema: enlace
Compararé tiempos con el campo de tiempo usando dayjs pero para el compilador en línea usé las claves para una comparación más fácil