目標:拿一個像54321這樣的數字,把數字加在一起(5 + 4 + 3 + 2 + 1 = 15),然後取這個數字(15)添加數字(1 + 5 = 6),所以返回6;減少一位數字到一位數字 - 請不要回答
這裏是我的代碼:
function digital_root(n) {
if (n >=10) {
var digits = n.toString().split('').map(function(item, index) {return parseInt(item)}).reduce(function(a,b){ return a+b});
console.log(digits);
}
}
digital_root(1632)
想不通:如何獲得該功能重複一遍又一遍,直到數字僅僅是一個數字(即小於10)。我嘗試了各種嵌套函數,但似乎無法做到。
如果可能,請指出解決方案的方向(「嘗試嵌套在一段時間......或閱讀......」),但不要給我完整的代碼解決方案(「使用此代碼塊:....「)。我養成了只讀和複製的壞習慣...
謝謝!
我的第一個對非專家的建議是擺脫「地圖」。即使對於有很多經驗的人來說,地圖通常在概念上也很具挑戰性相反,嘗試一個顯式循環,在找到數字時需要使用'/ 10'和'%10'。祝你好運。 –
謝謝!我會嘗試和nix的地圖,並按照你的建議循環工作! – Megan