Sha256: f0ea8fdccb71aa78ad2a760d66c88d45656bc5f94615a9ac125f921485fc53aa

Contents?: true

Size: 690 Bytes

Versions: 185

Compression:

Stored size: 690 Bytes

Contents

function toRoman(number) {
  let result = '';
  const mappings = [
    { arabic: 1000, roman: 'M' },
    { arabic: 900, roman: 'CM' },
    { arabic: 500, roman: 'D' },
    { arabic: 400, roman: 'CD' },
    { arabic: 100, roman: 'C' },
    { arabic: 90, roman: 'XC' },
    { arabic: 50, roman: 'L' },
    { arabic: 40, roman: 'XL' },
    { arabic: 10, roman: 'X' },
    { arabic: 9, roman: 'IX' },
    { arabic: 5, roman: 'V' },
    { arabic: 4, roman: 'IV' },
    { arabic: 1, roman: 'I' },
  ];

  mappings.forEach((mapping) => {
    while (number >= mapping.arabic) {
      result += mapping.roman;
      number -= mapping.arabic;
    }
  });

  return result;
}

export default toRoman;

Version data entries

185 entries across 185 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.179 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.178 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.177 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.176 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.175 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.174 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.173 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.172 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.171 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.170 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.169 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.167 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.166 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.165 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.164 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.163 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.162 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.161 tracks/ecmascript/exercises/roman-numerals/example.js
trackler-2.2.1.160 tracks/ecmascript/exercises/roman-numerals/example.js