3 回答

TA貢獻1836條經驗 獲得超4個贊
您需要RangeError按照以下指定的值將其扔到那里0 or greater than 12
function factorial(n) {
if(n < 0 || n > 12){
throw new RangeError('')
}
let array = Array(n).fill(0).map((e, i) => i + 1)
if (array.length) return array.reduce((a, b) => a * b);
else {
return 1;
}
}

TA貢獻1829條經驗 獲得超7個贊
如果給你一個負數,你試圖創建一個長度 < 0 的數組,這會導致你的錯誤。你需要處理負面
Array(Math.abs(n))
這將創建一個長度數組,無論它是正數還是負數。

TA貢獻1780條經驗 獲得超5個贊
問題的描述說你需要在n小于0和大于時拋出 RangeError 12。所以只需使用if之前的語句,你就會通過。
function factorial(n){
if(n < 0 || n > 12){
throw RangeError;
}
let array = Array(n).fill(0).map((e, i) => i + 1)
if (array.length) return array.reduce((a, b) => a * b);
else {
return 1;
}
}
添加回答
舉報