Roman Numeral Converter feedback request: ridiculous object + couple lines of code gets the job done

Ok, I will definitely rewrite this solution, because itโ€™s too straightforward, and there is definitely a pattern in terms of decimal to roman convertion which can be used.
But I wanted to play around accessing object props(like in record collection step from Basic JS), and apparently it was enough to pass :upside_down_face:

function convertToRoman(num) {

    const romanDictionary = {
  
        0 : {
          
          0: '',
          1: 'I',
          2: 'II',
          3: 'III',
          4: 'IV',
          5: 'V',
          6: 'VI',
          7: 'VII',
          8: 'VIII',
          9: 'IX'
          
        },
        
        1 : {
          
          0: '',
          1: 'X',
          2: 'XX',
          3: 'XXX',
          4: 'XL',
          5: 'L',
          6: 'LX',
          7: 'LXX',
          8: 'LXX',
          9: 'LC'
          
        },
        
        2 : {
          
          0: '',
          1: 'C',
          2: 'CC',
          3: 'CCC',
          4: 'CD',
          5: 'D',
          6: 'DC',
          7: 'DCC',
          8: 'DCCC',
          9: 'CM'
          
        },
        
        3 : {
          
          0: '',
          1: 'M',
          2: 'MM',
          3: 'MMM'
          
        }
      }

      formattedNumber = String(number).split("").reverse();//4321 >>> ['1', '2', '3', '4']

      return formattedNumber.map(
        (digit, index) => romanDictionary[index][digit]
        ).reverse().join('')
 
}

Makes sense.
Here I have question. To build object like this if we are solving similar problem(conversion of some kind): this is a good approach in general or not?

Good point, thanks.

I guess I can avoid reversing by slightly changing object structure also.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.