Javascript - >如何递归添加数组?

时间:2014-01-14 19:23:59

标签: javascript recursion

我似乎无法弄清楚这段代码有什么问题 - >不断抛出“超出最大调用堆栈大小”错误。

function arrayIntSum(array) {
    if (array === []){
        return 0;
    }
    else return array.shift() + arrayIntSum(array); 
} 

3 个答案:

答案 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有不同的内存空间。所以他们永远不平等。所以递归越过限制