2017-01-16 12 views
-1

ローマ数字を整数に変換しようとしていますが、私のコードでエラーを解明できませんでした。このエラーが表示されていますRangeError:配列の長さが無効です。誰でも助けてくれますか?前もって感謝します。javascriptでローマ数字を整数に変換する

function convertToRoman(num) { 
    var arr = {'1':'I','5':"V",'10':"X",'50':"L",'100':"C",'500':"D",'1000':"M"} ; 
    var result = ""; 
    var mult = 1; 
    while (num % 10 !== 0) { 
    var n = num % 10 ; 
    var h = n*mult; 
    if(n < 4) { 
     //console.log("eroor1-"); 
     result = Array(n+1).join(arr[h.toString()]) + result; 
    } 
    else if (n == 4) { 
     //console.log("eroor2-"); 
     result = arr[(h-mult).toString()] + arr[h.toString()] + result; 
    } 
    else if(n == 5) { 
     //console.log("eroor3-"); 
     result = arr[h.toString()] + result; 
    } 
    else if(n < 9) { 
     //console.log("eroor4-"); 
     result = Array(n-4).join(arr[mult.toString()]) + result; 
     //console.log("eroor4.1-"); 
     result = arr[h.toString()] + result; 
    } 
    else if(n == 9) { 
    // console.log("eroor5-"); 
     result = arr[(h+mult).toString()] + arr[h.toString()] + result; 
    } 
    else { 
     result = arr[h.toString()] + result; 
    } 

    mult *= 10; 
    num = num/10; 
    } 
return result; 
} 

convertToRoman(36); 

答えて

0

変数arrはオブジェクトであり、配列ではありません。コードのトラブルシューティングの次のステップを実行するには、配列に変更するか、オブジェクトとして使用するかのいずれかを選択してください。

+0

ありがとうございます! –

+0

問題はありません:)質問に答えた場合は、受け入れ済みとしてマークしてください – Corbfon

関連する問題