JavaScript - Convert the given number into a roman numeral



Convert the given number into a roman numeral. All roman numerals answers should be provided in upper -case.


Solution 1 Object approach


console = { 
    log: print,
    warn: print,
    error: print
};
function convertToRoman(num) {
    var romanNumKeys = {
        M: 1000,
        CM: 900,
        D: 500,
        CD: 400,
        C: 100,
        XC: 90,
        L: 50,
        XL: 40,
        X: 10,
        IX: 9,
        V: 5,
        IV: 4,
        I: 1
    };
    let roman = "";
    for (var key in romanNumKeys) {
        while (num >= romanNumKeys[key]) {
            roman += key;
            num -= romanNumKeys[key];
        }
    }
    return roman;
}

console.log(convertToRoman(36));


Solution 2 -array Approach



var convertToRoman = function (num) {
    var decimalValue = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
    var romanNumeral = [
        "M",
        "CM",
        "D",
        "CD",
        "C",
        "XC",
        "L",
        "XL",
        "X",
        "IX",
        "V",
        "IV",
        "I"
    ];

    var romanized = "";

    for (var index = 0; index < decimalValue.length; index++) {
        while (decimalValue[index] <= num) {
            romanized += romanNumeral[index];
            num -= decimalValue[index];
        }
    }

    return romanized;
};
console.log(convertToRoman(36));


Output:


XXXVI