Computer >> Máy Tính >  >> Lập trình >> Javascript

Giảm tổng các chữ số một cách đệ quy xuống JavaScript một số có một chữ số

Chúng ta phải viết một hàm nhận vào một số và tiếp tục thêm chữ số của nó cho đến khi kết quả không phải là một số có một chữ số, khi chúng ta có một số có một chữ số, chúng ta trả về nó.

Mã cho điều này khá đơn giản, chúng tôi viết một hàm đệ quy tiếp tục thêm chữ số cho đến khi số lớn hơn 9 hoặc nhỏ hơn -9 (chúng tôi sẽ quan tâm đến dấu riêng để chúng tôi không phải 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));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

7
9
-3
4