lo que estoy tratando de hacer es que tengo una sucursal que tiene horas de trabajo y, por lo tanto, hay más de un servicio que brinda esta sucursal, por lo que si el cliente presiona el servicio que dura 15 minutos, necesito dividir las horas de trabajo de la sucursal en cola lista de esta duración, desde el turno abierto hasta el final del turno y también eliminar todas las colas que están en el descanso de la sucursal
tengo estas variables:
Startshift="09:10" , breaktime = "12:00" , endBreak="12:30" , endShift="13:00" , periodo cada :10min
quiero definir una matriz de períodos de tiempo que contengan en cada celda una hora específica de acuerdo con la variable específica que doy
mi código:
let startTime = 9, endTime = 13, selectedServiceDuration = 10, middleMin = 10; for (i = startTime; i < endTime; i++) { for (j = middleMin; j < 60; j = j + selectedServiceDuration) { arr.push({ id: Math.random() * 56, hour: i + ":" + (j === 0 ? "00" : j) }); } }regresará de esta manera
"hour": "9:10", "hour": "9:20", "hour": "9:30", "hour": "9:40", "hour": "9:50", "hour": "10:10", "hour": "10:20", "hour": "10:30", "hour": "10:40", "hour": "10:50", "hour": "11:10", "hour": "11:20", "hour": "11:30", "hour": "11:40", "hour": "11:50", "hour": "12:10", "hour": "12:20", "hour": "12:30", "hour": "12:40", "hour": "12:50",entonces mi código perdió la hora: 10:00, lo que significa que el resto de la tabla es incorrecta
Su ciclo comienza desde 10 y termina mientras j = 50 porque su condición es j < 60 . Debe incrementar el ciclo hasta 60 para que su condición se convierta en j <= 60 . Verifica j === 0 pero el ciclo comienza desde 10 , entonces, ¿cómo va a 0 ? La mejor manera es verificar la hora con j === 60 .
A continuación se muestra el código modificado:
const arr = []; for(i=9; i<13; i++) { for(j=10; j<=60; j=j+10) { arr.push({id:Math.random()*56 , hour:(j === 60 ? (i + 1) : i) + ":" + (j === 60 ? "00" : j)} ); } } for (var k = 0; k <= arr.length - 1; k++) { console.log(arr[k].hour); }