Mi problema es un resultado incorrecto. Tengo una función, esta función tiene una distancia y un tiempo. El resultado que quiero lograr es calcular la velocidad de carrera.
function runningPace(distance, time) { let result = time.replace(":", ".") let fl = parseFloat(result) let calc = fl / distance let num = calc.toFixed(2) + '' if(num.length === 1) { num = num + '.00' } let rep = num.replace('.', ':') console.log(distance, time, result, fl, calc, rep, num) return rep; } console.log(runningPace(5, '25:00')) // '5:00' console.log(runningPace(4.99, '22:32')) // '4:30'Escribí tal función. Perdón por el nombre, lo arreglaré cuando lo arregle.
Cuando pruebo este código, el resultado es:
se esperaba que '4:47' fuera igual a '4:30'
'4:30' => cuatro minutos treinta segundos
¿Cómo puedo encontrar una solución? Gracias a todos de antemano.
convertir cualquier cosa en segundos:
function runningPace(dist, time) { let [ mn, sc ] = time.split(':').map(Number) , fl = Math.floor(((mn *60) + sc) / dist) ; sc = fl % 60 mn = (fl - sc) / 60 return `${mn}:${(sc<9)?'0'+sc:sc}` } console.log(runningPace( 5, '25:00')) // 5:00 console.log(runningPace( 4.99, '22:32')) // 4:30