JSFiddle - React, Tailwind, and code Playground
by joplomacedo
JavaScript
function convertTime(fromNum, fromUnit, toUnit) {
const minToMax = [
{ m: 1, unit: 'ms' },
{ m: 1000, unit: 's' },
{ m: 60, unit: 'm' },
{ m: 60, unit: 'h' },
{ m: 24, unit: 'd' }
]
const fromUnitIdx = minToMax.findIndex( ({unit}) => unit === fromUnit );
const toUnitIdx = minToMax.findIndex( ({unit}) => unit === toUnit );
const [startIdx, endIdx] = [fromUnitIdx, toUnitIdx].sort().map( v => v + 1 )
const multiplier = minToMax.slice(startIdx, endIdx).reduce( (res, {m}) => res * m, 1);
if ( fromUnitIdx > toUnitIdx ) {
return fromNum * multiplier;
} else {
return fromNum / multiplier;
}
}
const res = convertTime(24, 'h', 'm');
console.log(res);