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);