# Convert number to Roman Numerals [JavaScript]

```function convertToRoman(num) {
var romanNumerals = [
{number: 1,    numeral: "I", sub: 0},
{number: 5,    numeral: "V", sub: -1},
{number: 10,   numeral: "X", sub: -2},
{number: 50,   numeral: "L", sub: -1},
{number: 100,  numeral: "C", sub: -2},
{number: 500,  numeral: "D", sub: -1},
{number: 1000, numeral: "M", sub: -2}
];

var rni = romanNumerals.length - 1;
var result = "";
var rn, rnx;

while (num > 0 && rni >= 0) {
rn = romanNumerals[rni];

while (num >= rn.number) {
result += rn.numeral;
num -= rn.number;
}

// Symbols are placed from left to right in order of value, starting
// with the largest. However, in a few specific cases, to avoid four
// characters being repeated in succession (such as IIII or XXXX),
// subtractive notation is used where two symbols are used which
// indicate a smaller number being subtracted from a larger number;
// for example, 900 is represented as CM, which means 100 subtracted
// from 1000.

if (rn.sub !== 0) {
rnj = rni + rn.sub;
rnx = romanNumerals[rnj];
if (num >= (rn.number - rnx.number)) {
result = result + rnx.numeral + rn.numeral;
num -= (rn.number - rnx.number);
}
}

--rni;
}

return result;
}
```

Alternative version:-

```function convertToRoman(num) {
var result = "";

while (num >= 1000) {
result += "M";
num -= 1000;
}

if (num >= 900) {
result += "CM";
num -= 900;
}

if (num >= 500) {
result += "D";
num -= 500;
}

if (num >= 400) {
result += "DC";
num -= 400;
}

while (num >= 100) {
result += "C";
num -= 100;
}

if (num >= 90) {
result += "XC";
num -= 90;
}

if (num >= 50) {
result += "L";
num -= 50;
}

if (num >= 40) {
result += "XL";
num -= 40;
}

while (num > 10) {
result += "X";
num -= 10;
}

if (num == 9) {
result += "IX";
num -= 9;
}

if (num >= 5) {
result += "V";
num -= 5;
}

if (num == 4) {
result += "IV";
num -= 4;
}

while (num > 0) {
result += "I";
num--;
}

return result;
}
```