JSFiddle - React, Tailwind, and code Playground

by samdelagarza

JavaScript

function test(val1, val2) {
   if (val1 !== val2) {
     console.error(`Value: ${val1} does not equal ${val2}`);
   }
 }

 function convertToRomanNumeral(value) {
   var romanNumerals = {
     'M': 1000,
     'CM': 900,
     'D': 500,
     'C': 100,
     'L': 50,
     'XL': 40,
     'X': 10,
     'IX': 9,
     'V': 5,
     'IV': 4,
     'I': 1
   };

   var findValue = function(value, solveFor, result = '') {
     let val = romanNumerals[solveFor];

     if (value >= val) {
       let quotient = Math.floor(value / val);
       let remainder = value % val;

       for (let i = 0; i < quotient; i++) {
         result += solveFor;
       }

       value = remainder;
     }

     return {
       value,
       result
     };
   };

   var keys = Object.keys(romanNumerals);
   var result = '';

   keys.forEach(x => {
     let temp = findValue(value, x)

     value = temp.value;
     result += temp.result;
   });

   console.log('result: ', result);

   return result;
 };


 test(convertToRomanNumeral(3549), 'MMMDXLIX');
 test(convertToRomanNumeral(3949), 'MMMCMXLIX');