簡體   English   中英

返回返回未定義但控制台返回值

[英]Return returns undefined but console returns value

一個數字中所有數字的遞歸和的算法。 示例:942 --> 9 + 4 + 2 = 15 --> 1 + 5 = 6。

有人能告訴我為什么當我通過console.log打印時控制台中有正確的總和但是當我想返回時沒有定義?

let sum = 0;

const sumOfDigits = (num) => {
  let number = num.toString();

  if (number.length > 1) {
    sum = 0;
    [...number].forEach((digit) => {
      sum += Number(digit);
    });
    sumOfDigits(sum);
  } else {
    console.log(sum);
    return sum;
  }
};

console.log(sumOfDigits(942));

您不會返回所有調用的值

改變sumOfDigits(sum); return sumOfDigits(sum); 像下面

 let sum = 0; const sumOfDigits = (num) => { let number = num.toString(); if (number.length > 1) { sum = 0; [...number].forEach((digit) => { sum += Number(digit); }); return sumOfDigits(sum); } else { console.log(sum); return sum; } }; console.log(sumOfDigits(942));

暫無
暫無

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

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