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