Tell us what’s happening:
Is using number as object key good practice?Preformatted text
Your code so far
function convertToRoman(num) {
let num_string = num.toString().split('').reverse().join('');
let roman_str = [];
for (let i = 0; i < num_string.length; i++) {
let digit = parseInt(num_string[i]);
let place = Math.pow(10, i);
roman_str.push(toRoman(digit, place));
}
return roman_str.reverse().join('');
}
function toRoman(digit, place) {
let roman = {
0: "",
1: "I",
5: "V",
10: "X",
50: "L",
100: "C",
500: "D",
1000: "M"
};
let roman_str = [];
switch (digit) {
case 0:
case 1:
case 2:
case 3:
roman_str.push(roman[place].repeat(digit));
break;
case 4:
roman_str.push(roman[place]);
roman_str.push(roman[5 * place]);
break;
case 5:
roman_str.push(roman[5 * place]);
break;
case 6:
case 7:
case 8:
roman_str.push(roman[5 * place]);
roman_str.push(roman[place].repeat(digit - 5));
break;
case 9:
roman_str.push(roman[place]);
roman_str.push(roman[10 * place]);
break;
}
return roman_str.join('');
}
console.log(convertToRoman(87));
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
.
Challenge: Roman Numeral Converter
Link to the challenge: