在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