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