簡體   English   中英

如何在javascript內部調用function?

[英]how to call the function inside itself in javascript?

我是 JavaScript 的初學者,我在一個測試網站上遇到了這個測試,他們給了我這個測試,它是一個 function,它將給定的數字轉換為 checkId,它是給定數字的所有數字的總和,例如:給定 237 它的 2 +3+7=12 12 是 1+2= 3 所以返回值應該是 3 這是我的代碼,它給我的問題是 UNDEFINED 請幫忙謝謝

 function createCheckDigit(membershipId) { if (membershipId < 10) { return membershipId; } else { var digits = ("" + membershipId).split(""); for (var i = 0; i < digits.length; i++) { digits[i] = parseInt(digits[i]); } var res = digits.reduce((a, b) => a + b, 0); // recursion createCheckDigit(res); } } document.write(createCheckDigit("450"));

您只是缺少返回內部調用的結果:

 function createCheckDigit(membershipId) { if (membershipId < 10) { return membershipId; } else { var digits = ("" + membershipId).split(""); for (var i = 0; i < digits.length; i++) { digits[i] = parseInt(digits[i]); } var res = digits.reduce((a, b) => a + b, 0); // missing return here return createCheckDigit(res); } } document.write( "450 => "+createCheckDigit("450")); document.write( "<br>730 => "+createCheckDigit("730")); document.write( "<br>480 => "+createCheckDigit("480"));

在遞歸 function 中,如果 function 返回值,則必須return function call以獲取值。

這是解決方案:

 function createCheckDigit(membershipId) { if (membershipId < 10) { console.log("member", membershipId); return membershipId; } else { var digits = ("" + membershipId).split(""); console.log("digit", digits); for (var i = 0; i < digits.length; i++) { digits[i] = parseInt(digits[i]); } var res = digits.reduce((a, b) => a + b, 0); console.log("result", res); // recursion return createCheckDigit(res); } } document.write(createCheckDigit("450"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM