Roman Numeral Converter question

Roman Numeral Converter question
0

#1

Hello fellow campers!

I’ve finished the challenge in question with the following code.

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

  for (var i = 0; i < romanLetters.length; i += 1){
    while(num >= romanNumbers[i]){
      numToRoman += romanLetters[i];
      num -= romanNumbers[i];
    }
  }
  return numToRoman;
}

convertToRoman(36);

The description hints about Array.prototype.splice(), Array.prototype.indexOf() and Array.prototype.join(). As you can see, I didn’t use any of these, so… I feel like my solution is not the ‘proper’ solution.

I really can’t figure out how to finish the challenge by using these methods, so any guidance will be appreciated.


#2

As long as you solved it and you understood what you did, you’re doing fine. I didn’t use those as well :slight_smile:. The hinted functions can be useful for solving the challenges, but by no means are they required.

Ok, to be honest I have no idea how to use those functions for this challenge :sweat_smile:

Our solutions are similar.
function convertToRoman(num) {
  function values(roman, decimal) {
    return {
      roman: roman,
      decimal: decimal
    };
  }
  var table = [
    values('M', 1000),
    values('CM', 900),
    values('D', 500),
    values('CD', 400),
    values('C', 100),
    values('XC', 90),
    values('L', 50),
    values('XL', 40),
    values('X', 10),
    values('IX', 9),
    values('V', 5),
    values('IV', 4),
    values('I', 1)
  ];
  
  var n = num;
  var roman = '';
  var i = 0;
  while (n > 0) {
    if (n >= table[i].decimal) {
      roman += table[i].roman;
      n -= table[i].decimal;
    }
    else {
      i++;
    }
  }
  return roman;
}

#3

I know, but I’m curious.

.:laughing: Now we are two.


#4

I think, any method is ok if it works) I managed to use splice and join in mine solition, but have no clue where we could use indexOf :smiley: