Javascript 用于罗马数字的循环内的If语句

Javascript 用于罗马数字的循环内的If语句,javascript,roman-numerals,Javascript,Roman Numerals,我正在做一个程序,把十进制数字改成罗马数字。我接近于让数字1-8起作用,但由于某种原因,3不会出现。我只是想解决这个问题。一旦我做到了,我觉得我可以构建程序的其余部分。请记住,我只是在一门编程入门课上,所以我确信有更好的方法来解决这个问题,而不是我是如何接近它的,到目前为止,我只是在使用我所学到的 var romanize = function(userNumber) { var rome = []; for (var i = 0; i <= userNumber; i++) {

我正在做一个程序,把十进制数字改成罗马数字。我接近于让数字1-8起作用,但由于某种原因,3不会出现。我只是想解决这个问题。一旦我做到了,我觉得我可以构建程序的其余部分。请记住,我只是在一门编程入门课上,所以我确信有更好的方法来解决这个问题,而不是我是如何接近它的,到目前为止,我只是在使用我所学到的

var romanize = function(userNumber) {
  var rome = [];
  for (var i = 0; i <= userNumber; i++) {
    if (userNumber >= 5) {
      rome.push("V");
      userNumber = (userNumber % 5);
    } else if (userNumber === 4) {
      return "IV";
    } else if (userNumber < 3) {
      rome.push("I");
    }
  }
  return rome
};
var romanize=函数(userNumber){
var rome=[];
对于(变量i=0;i=5){
罗马。推(“V”);
用户编号=(用户编号%5);
}else if(userNumber==4){
返回“IV”;
}else if(用户编号<3){
罗马。推(“我”);
}
}
返回罗马
};

您希望userNumber<3应该是userNumber。这种编程方式只允许您获取数字的罗马数字到某一点。真正的挑战是让它适用于任何数字。假设您有一系列的值/字母对要处理(例如,
[[1',i'],[5',V'],[10',X'],…,[1000',M'].
)。VIII到IX开关也是一个潜在的陷阱。您做得很好。这不仅是一个工作程序,也是一个很好的问题。你已经领先很多程序员了