[英]How do I fix the undefined result I keep getting from this?
所以我正在做 HackerRank superDigit 挑戰,即使我有所有非正式測試用例的正確值,輸出框說結果是未定義的。 我並沒有真正了解 undefined 是什么,或者一個帶有值的變量如何返回為 undefined。
function superDigit(n, k) { // Write your code here var nArr = []; for(let i = 0; i < n.length; i++) { nArr.push(n[i]); } console.log('nArr: ' + nArr); var nComb = 0; for(let i = 0; i < nArr.length; i++) { nComb += parseInt(nArr[i]); } console.log('nComb: ' + nComb); var nMult = nComb *= k; console.log('nMult: ' + nMult); console.log(''); if(nMult < 10) { return nMult; } else { superDigit(nMult.toString(),1); } }
您可能還想返回superDigit
結果。 所以在遞歸調用superDigit
時候,加上return語句。 我還稍微清理了console.log
調用,這樣它對我來說更具可讀性。
function superDigit(n, k) { var nArr = []; for(let i = 0; i < n.length; i++) { nArr.push(n[i]); } var nComb = 0; for(let i = 0; i < nArr.length; i++) { nComb += parseInt(nArr[i]); } var nMult = nComb *= k; console.log('nMult:', nMult, 'nArr:', nArr, 'nComb:', nComb); if(nMult < 10) { return nMult; } else { return superDigit(nMult.toString(),1); } } document.getElementById('result').innerText = superDigit("200", 20);
<html> <body> <p id="result"></p> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.