我似乎无法弄清楚这段代码有什么问题 - >不断抛出“超出最大调用堆栈大小”错误。
function arrayIntSum(array) {
if (array === []){
return 0;
}
else return array.shift() + arrayIntSum(array);
}
答案 0 :(得分:9)
通过引用比较Javascript对象。
[]
创建一个新的数组实例,它永远不会等于你的变量。
您想查看length
。
答案 1 :(得分:2)
function arrayIntSum(array) {
if (array.length === 0){
return 0;
}
else return array.shift() + arrayIntSum(array);
}
答案 2 :(得分:1)
你应该通过这种方式检查: a.length == 0
你比较了一个[],作为'[]'literal,它有不同的内存空间。和a
有不同的内存空间。所以他们永远不平等。所以递归越过限制