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

Làm thế nào để viết hàm giai thừa với giảm và phạm vi trong JavaScript?

Chúng tôi được yêu cầu viết một hàm giai thừa JavaScript có sự trợ giúp của một hàm trợ giúp khác, range ().

Hàm dải ô nên chuẩn bị một dải số từ 1 đến số đầu vào. Sau đó, hàm chính sẽ chạy một hàm Array.prototype.reduce () trên mảng phạm vi để tính giai thừa

Ví dụ

Mã cho điều này sẽ là -

const range = (start, end) => {
   const acc = [];
   for (var i = start; i < end; i++) {
      acc.push(i);
   };
   return acc;
}
const factorial = n => {
   let factors = range(1, Math.abs(n)+1);
   let res = factors.reduce((acc,val) => {
      return acc * val;
   }, 1);
   if(n < 0){
      res *= -1;
   };
   return res;
};
console.log(factorial(5));

Đầu ra

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

120