无法在屏幕上显示代码

时间:2017-06-06 03:33:57

标签: javascript function for-loop if-statement

对于那些程序员来说,这可能听起来很简单,但我似乎无法弄明白。我正在制作一个将十进制数转换为罗马数字的程序。我已经掌握了核心代码,但我似乎无法思考如何在屏幕上显示结果。我希望这样当用户在文本框中键入数字时,只需按一下按钮,结果就会显示在另一个文本框中。谢谢你的时间和救命。

function convertToRoman(num) {
var romans = {
    M:  1000,
    CM: 900,
    D:  500,
    CD: 400,
    C:  100,
    XC: 90,
    L:  50,
    XL: 40,
    X:  10,
    IX: 9,
    V:  5,
    IV: 4,
    I:  1,
};

var result = '';

for (var key in romans) {
    if (num >= romans[key]) {
        result += key.repeat(Math.trunc(num / romans[key]));
        num -= romans[key] * Math.trunc(num / romans[key]);
    }
}

return result;

}

3 个答案:

答案 0 :(得分:0)

如果你添加一个div元素并给它一个类似"输出"的ID,你就可以这样做。

document.getElementById("output").innerHTML = result;

答案 1 :(得分:0)

  1. 您可以使用可靠的旧alert功能。只做alert(convertToRoman(10))。将其放在<script>标记或body body onload属性
  2. 对于更专业的调试,您可以使用console.log。源自一个名为Firebug的旧版Firefox插件,现在所有浏览器都支持它。只需输入console.log(convertToRoman(10));结果将打印到控制台,查看,右键单击浏览器,打开检查文档并移至控制台选项卡,或者在Chrome中按Ctrl + Shift + I

答案 2 :(得分:0)

您缺少将结果附加到html的部分。请参阅下面的工作代码作为示例。

&#13;
&#13;
function convertToRoman(num) {
  var romans = {
      M:  1000,
      CM: 900,
      D:  500,
      CD: 400,
      C:  100,
      XC: 90,
      L:  50,
      XL: 40,
      X:  10,
      IX: 9,
      V:  5,
      IV: 4,
      I:  1,
  };

  var result = '';

  for (var key in romans) {
      if (num >= romans[key]) {
          result += key.repeat(Math.trunc(num / romans[key]));
          num -= romans[key] * Math.trunc(num / romans[key]);
      }
  }

  document.getElementById('output').innerHTML = result;
}

convertToRoman(12345);
&#13;
<div> my result <span id="output"></span></div>
&#13;
&#13;
&#13;