递归堆栈错误RangeError:超出最大调用堆栈大小

时间:2016-08-18 09:38:18

标签: javascript node.js search recursion

尝试使用递归代码在嵌套的json对象中搜索特定值,并发生此错误:

  

RangeError:超出最大调用堆栈大小

到目前为止我尝试了什么:

    exports.indexOfJson = function(array, value) {
    for (var i = 0; i < array.length; i++) {
        if (array[i]) {
            if (findNestedValue(array[i], value)) {
                return i;
            }
        }
    }
    return -1;
};


function findNestedValue(obj, value) {
    for (var k in obj) {
        if (typeof obj[k] === 'object') {
                if (findNestedValue(obj[k], value))
                    return true;
        } else {
            if (obj[k] && obj[k].toString() === value.toString()){
                return true;
            }
        }
    }
    return false;
}

0 个答案:

没有答案