2017-06-06 76 views
0

對於程序員來說,這可能聽起來像一件簡單的事情,但我似乎無法弄清楚。我正在製作一個將十進制數字轉換爲羅馬數字的程序。我有核心代碼工作,但我似乎無法想象如何我可以在屏幕上顯示結果。我希望這樣,當用戶在一個文本框中鍵入一個數字時,按下一個按鈕,結果就會顯示在另一個文本框中。感謝您的時間&幫助。在屏幕上顯示代碼時出現問題

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; 

} 
+1

哪裏是你的HTML?你可以使用(可能)'document.getElementById()'來獲得你的文本框的引用,'.addEventListener()'爲'input'或'change'事件添加一個處理程序來運行你現有的JS。用戶在該字段中鍵入內容。 – nnnnnn

回答

0

如果你添加一個div元素並給它一個像「output」這樣的id,你可以做這樣的事情。

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

這個工作適合你嗎?你有嘗試過什麼嗎? – Shawnzey

0
  1. 可以使用可信賴歲alert功能。只要做alert(convertToRoman(10))。把它放在一個<script>標籤或內部onload屬性中
  2. 對於更專業的調試,你可以使用console.log。起源於一個名爲Firebug的舊版Firefox插件,現在支持全部瀏覽器。只需輸入console.log(convertToRoman(10));結果將被打印出來安慰,看到它,右鍵點擊你的瀏覽器,並打開檢查文件,並移動到控制檯選項卡,或者按Ctrl + Shift + I在Chrome
0

你缺少將結果附加到html的部分。以下面的工作代碼爲例。

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);
<div> my result <span id="output"></span></div>