Tengo una función que toma un objeto, vuelve a ordenar los días manualmente y convierte una cadena en una matriz
export const convertHoursOfOperation = (service) => { const hours = { Monday: service.hours_of_operation["monday"], Tuesday: service.hours_of_operation["tuesday"], Wednesday: service.hours_of_operation["wednesday"], Thursday: service.hours_of_operation["thursday"], Friday: service.hours_of_operation["friday"], Saturday: service.hours_of_operation["saturday"], Sunday: service.hours_of_operation["sunday"] }; for (let hour in hours) { hours[hour] !== null ? hours[hour] = hours[hour].split(",") : hours[hour] = 'Closed' hours[hour] !== 'Closed' ? hours[hour].forEach((h) => moment(h, "HH:mm").format('h:mm')) : null } return hours; } salida de hours[hour] !== null ? hours[hour] = hours[hour].split(",") : hours[hour] = 'Closed'
monday: '09:00, 15:00' => monday: [09:00, 15:00] O monday: null => monday: 'Closed'
luego estoy tratando de recorrer la matriz si es una matriz y convertir los valores de la hora militar a la hora estándar usando moment .
así que ahora mi salida deseada debería ser:
monday: [09:00, 15:00] => monday: [9:00, 3:00] actualmente la línea hours[hour] !== 'Closed' ? hours[hour].forEach((h) => moment(h, "HH:mm").format('h:mm')) : null no está convirtiendo nada. ¿Qué estoy haciendo mal aquí?
no estás configurando tu moment() en nada. Establezca el valor en ese índice en particular. El código correcto debería ser este:
hours[hour] !== 'Closed' ? hours[hour].forEach((h,index) => hours[hour][index] = moment(h, "HH:mm").format('h:mm')) : null;