roman numerals
🧩 Syntax:
class RomanNumerals {
static toRoman(num) {
const map = {
4: {
1: 'M',
2: 'MM',
3: 'MMM',
4: 'MMMM'
},
3: {
1: 'C',
2: 'CC',
3: 'CCC',
4: 'CD',
5: 'D',
6: 'DC',
7: 'DCC',
8: 'DCCC',
9: 'CM',
0: ''
},
2: {
1: 'X',
2: 'XX',
3: 'XXX',
4: 'XL',
5: 'L',
6: 'LX',
7: 'LXX',
8: 'LXXX',
9: 'XC',
0: ''
},
1: {
1: 'I',
2: 'II',
3: 'III',
4: 'IV',
5: 'V',
6: 'VI',
7: 'VII',
8: 'VIII',
9: 'IX',
0: ''
}
}
const digits = String(num).split('').map(x => parseInt(x))
const numOfDigits = digits.length
var currentIndex = 0
var romanRepresentation = ''
while(currentIndex <= numOfDigits) {
const orderOfDigit = numOfDigits - currentIndex
romanRepresentation = romaRepresentation + map[orderOfDigit][digits[orderOfDigit]]
}
return romanRepresentation;
}
static fromRoman(str) {
return 4;
}
}