Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ลดผลรวมของหลักซ้ำลงไปเป็นตัวเลขหนึ่งหลัก JavaScript


เราต้องเขียนฟังก์ชันที่รับตัวเลขแล้วบวกหลักไปเรื่อยๆ จนได้ผลลัพธ์ไม่ใช่ตัวเลขหลักเดียว พอได้เลขหลักเดียวเราก็คืนมา

โค้ดสำหรับสิ่งนี้ค่อนข้างตรงไปตรงมา เราเขียนฟังก์ชันแบบเรียกซ้ำที่เพิ่มตัวเลขจนกระทั่งตัวเลขนั้นมากกว่า 9 หรือน้อยกว่า -9 (เราจะดูแลเครื่องหมายแยกกันเพื่อไม่ให้เราเขียนตรรกะซ้ำสอง)

ตัวอย่าง

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));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

7
9
-3
4