UNPKG

@modcord/unit-converter

Version:

Converts metric units to any of their multiples or submultiples.

28 lines (23 loc) 553 B
class Unit { constructor (magnitude) { this.magnitude = magnitude; } convert (n) { const mag = this.magnitude; return [ Math.floor(n / mag), n % mag]; } to (...units) { return n => units.reduce( (arr, unit) => [ ...arr.slice(0, -1), ...unit.convert(arr[arr.length-1]) ] , [n]).slice(0,-1); } from (...units) { return (...ns) => units.reduce( (sum, unit, i) => sum + ns[i] * unit.magnitude , 0) / this.magnitude; } } module.exports = Unit;