Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đệ quy tổng chữ số về một chữ số trong JavaScript

Viết hàm nhận một số, liên tục cộng các chữ số cho đến khi kết quả là số một chữ số, rồi trả về số đó.

Code đơn giản: hàm đệ quy cộng chữ số cho đến khi số <= 9 (xử lý dấu riêng để không viết logic hai lần).

Ví dụ

const sumRecursively = (n, isNegative = n < 0) => {
  n = Math.abs(n);
  if (n > 9) {
    return sumRecursively(parseInt(String(n).split("").reduce((acc, val) => {
      return acc + +val;
    }, 0)), isNegative);
  }
  return !isNegative ? n : n * -1;
};

console.log(sumRecursively(88));
console.log(sumRecursively(18));
console.log(sumRecursively(-345));
console.log(sumRecursively(6565));

Kết quả

Đầu ra trong console sẽ là:

7 9 -3 4