Javascript 使用开关盒转换

Javascript 使用开关盒转换,javascript,Javascript,我是JavaScript的初学者,我的代码有问题。当我的代码没有输出答案时,我似乎无法找出它有什么问题。我试图将用户输入的罗马数字转换为相应的印度教阿拉伯数字。这是到目前为止我的代码 <!doctype html> <html> <body> <h2>JavaScript Roman to Decimal Converter(1-10)</h2> <p id="demo"></p> <input id="r

我是JavaScript的初学者,我的代码有问题。当我的代码没有输出答案时,我似乎无法找出它有什么问题。我试图将用户输入的罗马数字转换为相应的印度教阿拉伯数字。这是到目前为止我的代码

<!doctype html>
<html>
<body>
<h2>JavaScript Roman to Decimal Converter(1-10)</h2>
<p id="demo"></p>
<input id="roman" value=""/>
<button onclick="myFunction()">Convert</button>
</form>
<script>
function myFunction(){
    var sum=0;
        var len=romanNum.length();
        var i;

        var previous=10;
        for (i=0; i<len; i++)
        {
            switch (romanNum.charAt(i))
            {
            case 'X':
                sum=sum+10;
                if(previous<10)
                    sum=sum-2*previous;
                previous=10;
                break;

            case 'V':
                sum=sum+5;
                if(previous<5)
                    sum=sum-2*previous;
                previous=5;
                break;              

            case 'I':
                sum=sum+1;
                previous=1;

            }
        }
        decimalNum=sum;
    return decimalNum;

    document.getElementById("demo").innerHTML=decimalNum+" is the answer.";
</script>
</body>
</html>

JavaScript罗马到十进制转换器(1-10)

转换 函数myFunction(){ var总和=0; var len=romanum.length(); var i; var=10; for(i=0;i是最简单的解决方案,而不是复杂的switch语句

var decimal=[100050010050,10,5,1];
var roman=[“M”、“D”、“C”、“L”、“X”、“V”、“I”];
函数myFunction(){
var str=document.getElementById(“罗马”).value;
var结果=0;
var decimal=[1000900500400100,90,50,40,10,9,5,4,1];
var roman=[“M”、“CM”、“D”、“CD”、“C”、“XC”、“L”、“XL”、“X”、“IX”、“V”、“IV”、“I”];
对于(var i=0;i而言,这是最简单的解决方案,而不是复杂的switch语句

var decimal=[100050010050,10,5,1];
var roman=[“M”、“D”、“C”、“L”、“X”、“V”、“I”];
函数myFunction(){
var str=document.getElementById(“罗马”).value;
var结果=0;
var decimal=[1000900500400100,90,50,40,10,9,5,4,1];
var roman=[“M”、“CM”、“D”、“CD”、“C”、“XC”、“L”、“XL”、“X”、“IX”、“V”、“IV”、“I”];

对于(var i=0;i这里我创建了一个简短的演示,请检查我留下的评论


JavaScript罗马到十进制转换器(1-10)

转换 函数myFunction(){ var总和=0; //您忘了获取romanNum值 var romanum=document.getElementById(“roman”).value; //String.length是一个属性而不是一个方法 var len=romanum.length; var i; var=10;
对于(i=0;i这里我创建了一个简短的演示,请检查我留下的评论


JavaScript罗马到十进制转换器(1-10)

转换 函数myFunction(){ var总和=0; //您忘了获取romanNum值 var romanum=document.getElementById(“roman”).value; //String.length是一个属性而不是一个方法 var len=romanum.length; var i; var=10;
对于(i=0;i您是否在控制台中看到任何错误?另外,您有一个
,但没有
,您的javascript格式不正确,什么是
romanNum
?-在您开始更正代码之前,这有太多问题,其中有几个错误和问题。您正在使用'romanNum.length()'但是您还没有导入任何与此对象相关的脚本或插件。您在控制台中看到任何错误吗?此外,您有一个
,但没有
,您的javascript格式不正确,什么是
romanNum
?-在您开始更正代码之前,这有太多问题,其中有几个错误和问题。您是使用“romanNum.length()”,但尚未导入任何与此对象相关的脚本或插件
<!doctype html>
<html>
<body>
<h2>JavaScript Roman to Decimal Converter(1-10)</h2>
<p id="demo"></p>
<input id="roman" value=""/>
<button onclick="myFunction()">Convert</button>
</form>
<script>
function myFunction(){
  var sum=0;

  // you forgot to get romanNum value
  var romanNum = document.getElementById("roman").value;

  // String.length is an property not a method
  var len=romanNum.length;
  var i;

  var previous=10;
  for (i=0; i<len; i++)
  {
    switch (romanNum.charAt(i))
    {
      case 'X':
        sum=sum+10;
        if(previous<10)
          sum=sum-2*previous;
        previous=10;
        break;

      case 'V':
        sum=sum+5;
        if(previous<5)
          sum=sum-2*previous;
        previous=5;
        break;              

      case 'I':
        sum=sum+1;
        previous=1;

    }
  }
  decimalNum=sum;
  // no one experession will be executed, if it placed after return
  document.getElementById("demo").innerHTML=decimalNum+" is the answer.";
  return decimalNum;
  // also, you forgot to close the function
}
</script>
</body>
</html>