我有一个简单的阶乘函数:
function factorial(n){
let array = Array(n).fill(0).map((e, i) => i + 1)
if (array.length) return array.reduce((a, b) => a * b);
else {
return 1;
}
}
但由于某些原因,这是扔Expected error was thrown: RangeError: Invalid array length在codewars。
我试图通过if-else块解释数组长度为 0 / 未定义。
但是,我仍然收到错误消息。我不确定如何解释无效范围,坦率地说,不明白它指的是什么。
我还尝试在以下范围内抛出“rangeError” try-catch:
function factorial(n) {
try {
let array = Array(n)
.fill(0)
.map((e, i) => i + 1);
return array.reduce((a, b) => a * b);
} catch (error) {
if (error instanceof TypeError) {
throw new error();
} else if (error instanceof RangeError) {
throw new error();
} else {
throw error;
}
}
}
事实上,这造成了第二个错误: TypeError: error is not a constructor
HUH函数
吃鸡游戏
翻阅古今
相关分类