有經驗的codefighters,我剛開始使用Codefight網站學習Javascript。我已經解決了他們的任務,但系統不接受它。任務是將數字中的所有整數(個位數)相加。例如sumDigit(111)= 3。我的代碼有什麼問題?請幫幫我。Codefights:正確的解決方案,但系統不接受它
代碼
function digitSum(n) {
var emptyArray = [];
var total = 0;
var number = n.toString();
var res = number.split("");
for (var i=0; i<res.length; i++) {
var numberInd = Number(res[i]);
emptyArray.push(numberInd);
}
var finalSum = emptyArray.reduce(add,total);
function add(a,b) {
return a + b;
}
console.log(finalSum);
//console.log(emptyArray);
//console.log(res);
}
您的算法是正確的,所以這必須與Codefighters網站的工作方式有關。你能嘗試用'return finalSum;'替換'console.log(finalSum);'嗎? – TheHansinator
這可能屬於Code Review。但是你的代碼的問題很可能是你將數字轉換爲字符串來分解數字。有一個更有效的方法來做到這一點,只涉及算術和循環。 – pzp
pzp,你是對的我有同樣的感覺....我的算法是不好的。 – NZMAI