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

Viết hàm giai thừa với reduce và range trong JavaScript


Chúng ta cần viết một hàm giai thừa JavaScript sử dụng hàm hỗ trợ range().

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

Ví dụ

Code cho việc 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) => acc * val, 1); 
  if (n < 0) res *= -1; 
  return res; 
}; 
console.log(factorial(5));

Kết quả

Kết quả hiển thị trong console sẽ là:

120