在repl上工作。它不’;t work no freeCodeCamp-JavaScript算法和数据结构项目:罗马数字转换器

在repl上工作。它不’;t work no freeCodeCamp-JavaScript算法和数据结构项目:罗马数字转换器,javascript,arrays,node.js,sorting,Javascript,Arrays,Node.js,Sorting,刚刚完成我的罗马数字转换器,它在上运行良好,但在上,输出为: // running tests convertToRoman(2) should return "II". convertToRoman(3) should return "III". ... // tests completed 请检查我的代码,在回复上。它工作罚款。它可以将阿拉伯数字转换为罗马数字: let arr = []; function splitNumber(num) { let len = num.toStri

刚刚完成我的罗马数字转换器,它在上运行良好,但在上,输出为:

// running tests
convertToRoman(2) should return "II".
convertToRoman(3) should return "III".
...
// tests completed
请检查我的代码,在回复上。它工作罚款。它可以将阿拉伯数字转换为罗马数字:

let arr = [];
function splitNumber(num) {
  let len = num.toString().length; //get length of the number
  let d = Math.pow(10, len);


  for (let i = 0; i < len + 1; i++) {
    const x = num % d; // remainder from num to d save number by unit, decimal, etc..
    if (d > 1) { 
        d /= 10;
        arr.push(Math.floor(x / d) * d); // save the value in the array
    }
  }
  return arr;
}

function convertToRoman(num) {
  splitNumber(num);
  let arabicToRoman= {
   1: 'I',
   4: 'IV',
   5: 'V',
   9: 'IX',
   10: 'X',
   40: 'XL',
   50: 'L',
   90: 'XC',
   100: 'C',
   400: 'CD',
   500: 'D',
   900: 'CM',
   1000: 'M'
 };
 let array = [];
  for (let i = 0; i < arr.length; i++) {
      let a = arr[i]
    if (a > 1 && a < 4) {
      array.push(arabicToRoman[1].repeat(a));
    } else if (a > 5 && a < 9) {
      array.push(arabicToRoman[5],arabicToRoman[1].repeat(a - 5));
    } else if (a > 10 && a < 40) {
      array.push(arabicToRoman[10].repeat(a / 10));
    } else if (a > 50 && a < 90) {
      array.push(arabicToRoman[50],arabicToRoman[10].repeat(a / 10 - 5));
    } else if (a > 100 && a < 400) {
      array.push(arabicToRoman[100].repeat(a / 100));
    } else if (a > 500 && a < 900) {
      array.push(arabicToRoman[500],arabicToRoman[100].repeat(a / 100 - 5));
    } else if (a > 1000) {
      array.push(arabicToRoman[1000],arabicToRoman[1000].repeat(a / 1000));
    } else {
      array.push(arabicToRoman[a]);
    };
  };
  num = array.toString().replace(/,/g,'')
  return(num);
};

convertToRoman(36); // number 36 as an example, you can change it

让arr=[];
函数splitNumber(num){
让len=num.toString().length;//获取数字的长度
设d=Math.pow(10,len);
for(设i=0;i1){
d/=10;
arr.push(Math.floor(x/d)*d);//将值保存在数组中
}
}
返回arr;
}
函数转换器(num){
splitNumber(num);
让阿拉伯妇女={
1:"我",,
四:"四",,
5:‘V’,
9:‘九’,
10:'X',
40:‘XL’,
50:‘L’,
90:‘XC’,
100:‘C’,
400:‘CD’,
500:‘D’,
900:‘厘米’,
1000:M
};
让数组=[];
for(设i=0;i1&&a<4){
array.push(arabicToRoman[1]。重复(a));
}否则如果(a>5&&a<9){
array.push(arabicToRoman[5],arabicToRoman[1]。重复(a-5));
}否则,如果(a>10&&a<40){
array.push(arabicToRoman[10]。重复(a/10));
}否则,如果(a>50&&a<90){
array.push(arabicToRoman[50],arabicToRoman[10]。重复(a/10-5));
}否则,如果(a>100&&a<400){
array.push(arabicToRoman[100]。重复(a/100));
}否则,如果(a>500&&a<900){
array.push(arabicToRoman[500],arabicToRoman[100]。重复(a/100-5));
}如果(a>1000),则为其他情况{
array.push(arabicToRoman[1000],arabicToRoman[1000]。重复(a/1000));
}否则{
array.push(arabicToRoman[a]);
};
};
num=array.toString().replace(/,/g',)
返回(num);
};
转炉阿曼(36);//以36号为例,您可以更改它
如果能帮助我了解freeCodeCamp缺少了什么,那就太好了

函数转换器(num){
function convertToRoman(num) {

  let roman={
    1:"I",
    4:"IV",
    5:"V",
    9:"IX",
    10:"X",
    40:"XL",
    50:"L",
    90:"XC",
    100:"C",
    400:"CD",
    500:"D",
    900:"CM",
    1000:"M"
  }
  
  function roManify(num,i){
    let roNum;
    if (num==0){
      roNum = "";
    }
    if (num>0&&num<4){
      roNum = roman[i].repeat(num);
    }
    else if (num==4){
      roNum = roman[num*i];
    }
    else if(num>4&&num<9){
      roNum = roman[5*i] + roman[i].repeat(num-5);
    }
    else if(num==9){
      roNum = roman[num*i];
    }
    return roNum;
  }

   num = String(num).split("");

   if (num.length == 4){
     let result;
     result = roManify(num[0],1000)+roManify(num[1],100)+ roManify(num[2],10)+roManify(num[3],1);
     console.log(result);
     return result;
   }
   else if (num.length == 3){
     let result;
     result = roManify(num[0],100)+roManify(num[1],10)+ roManify(num[2],1);
     console.log(result);
     return result;
   }
   else if (num.length == 2){
     let result;
     result = roManify(num[0],10)+ roManify(num[1],1);
     console.log(result);
     return result;
   }
   else if (num.length == 1){
     let result;
     result = roManify(num[0],1);
     console.log(result);
     return result;
   }
  
}

convertToRoman(3999);
让罗曼={ 1:“我”, 4.“四”, 5:“V”, 9.“九”, 10:“X”, 40:“XL”, 50:“L”, 90:“XC”, 100:“C”, 400:“CD”, 500:“D”, 900:“厘米”, 1000:“米” } 函数罗马化(num,i){ 让罗南; 如果(num==0){ roNum=“”; } if(num>0&&num4&&num
函数转换器(num){
让罗曼={
1:“我”,
4.“四”,
5:“V”,
9.“九”,
10:“X”,
40:“XL”,
50:“L”,
90:“XC”,
100:“C”,
400:“CD”,
500:“D”,
900:“厘米”,
1000:“米”
}
函数罗马化(num,i){
让罗南;
如果(num==0){
roNum=“”;
}
如果(num>0&&num4&&num