Max Stack超出错误,我该如何解决这个问题?

时间:2017-12-24 16:53:05

标签: javascript recursion stack-overflow

如果外部功能中的数字在内部功能列表中

,我正在创建一个返回true的函数
<script>
function hasMatch(item) {
    hasMatch(2)  
    function inList() {
        var List = [1,2,3,4];
        for (i = 0; i<List.length; i++){
            if (list[i] == item) { 
                return true; 
            } else {
                return false;
            }
        }
    }
    inList();
}
hasMatch();
</script>

我收到“最大堆栈超出错误”,我该怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

hasMatch(2)是递归调用,没有任何终止条件。

hasMatch()被无限调用,这就是为什么你看到堆栈超出错误的原因。

function hasMatch(item) { 
    function inList() {
        var List = [1,2,3,4];
        for (i = 0; i<List.length; i++){
            if (List[i] == item) { 
                return true; 
            } else {
                return false;
            }
        }
    }
    return inList();
}

hasMatch(2);