Javascript 一个数字可以用这种方式罗马化吗?

Javascript 一个数字可以用这种方式罗马化吗?,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我知道有几种不同的方法可以浪漫化一个数字,但是我正在尝试自己的方法,我想知道这种方法是否可行 每次迭代它都返回Null,我似乎看不出我缺少什么。任何帮助都将不胜感激 var数组; var结果=[]; 函数转换器(num){ 数组=num.toString().split(“”).reverse(); 罗马文=[,“I”,“II”,“III”,“IV”,“V”,“VI”,“VII”,“VIII”,“IX”, “,”X“,”XX“,”XXX“,”XL“,”L“,”LX“,”LXX“,”XC“, “

我知道有几种不同的方法可以浪漫化一个数字,但是我正在尝试自己的方法,我想知道这种方法是否可行

每次迭代它都返回Null,我似乎看不出我缺少什么。任何帮助都将不胜感激

var数组;
var结果=[];
函数转换器(num){
数组=num.toString().split(“”).reverse();
罗马文=[,“I”,“II”,“III”,“IV”,“V”,“VI”,“VII”,“VIII”,“IX”,
“,”X“,”XX“,”XXX“,”XL“,”L“,”LX“,”LXX“,”XC“,
“,“C”,“CC”,“CCC”,“CD”,“D”,“DC”,“DCC”,“DCCC”,“CM”
];
对于(i=0,j=0;iconsole.log(convertToRoman(123))由于
数组
包含字符串,在算术中使用它们时,必须将它们解析回整数。这是一个可能的解决方案:

var-roman=[”,“I”,“II”,“III”,“IV”,“V”,“VI”,“VIII”,“VIII”,“IX”,
“,”X“,”XX“,”XXX“,”XL“,”L“,”LX“,”LXX“,”XC“,
“,“C”,“CC”,“CCC”,“CD”,“D”,“DC”,“DCC”,“DCCC”,“CM”
];
函数转换器(num){
var结果=[];
var array=num.toString().split(“”).reverse();
对于(i=0,j=0;iconsole.log(convertToRoman(123))由于
数组
包含字符串,在算术中使用它们时,必须将它们解析回整数。这是一个可能的解决方案:

var-roman=[”,“I”,“II”,“III”,“IV”,“V”,“VI”,“VIII”,“VIII”,“IX”,
“,”X“,”XX“,”XXX“,”XL“,”L“,”LX“,”LXX“,”XC“,
“,“C”,“CC”,“CCC”,“CD”,“D”,“DC”,“DCC”,“DCCC”,“CM”
];
函数转换器(num){
var结果=[];
var array=num.toString().split(“”).reverse();
对于(i=0,j=0;iconsole.log(convertToRoman(123))改为尝试
j+array[i]
。嗯
array[i]
是一个字符串,要执行您想要执行的操作,最好使用
location=10*j+Number(array[i])
。您确实应该在函数内部声明(并初始化)
array
result
。或者当你第二次调用它时,它会运行得很糟糕。
for(var i=0,j=0;i
会给你一些可能的想法[(dublicate)谢谢大家的建议。事实上,问题是数组包含字符串而不是实际数字。使用Number()或parseInt()将数组转换回整数修复了问题。还感谢大家提供了有关作用域的提示。请改为尝试
j+array[i]
。嗯。
array[i]
是一个字符串,为了完成您想要做的事情,最好使用
location=10*j+Number(array[i])
。您确实应该在函数内部声明(并初始化)
array
result
。否则,当您第二次调用它时,它会运行混乱。
(var i=0,j=0;i
将为您提供一些可能的想法谢谢大家的建议。事实上,问题是数组包含字符串而不是实际的数字。使用Number()或parseInt()将数组转换回整数解决了这个问题。还感谢您提供有关作用域的提示。