递归搜索功能

时间:2014-12-14 17:54:46

标签: javascript recursion

我如何创建一个递归函数,可以在列表中搜索x = 10的节点?

我没有任何javascript经验,所以我不知道从哪里开始所以会欣赏和输入

我遇到了以下代码,并尝试对其进行调整,但我不确定自己是否走在正确的轨道上:

function search(_for, _in) {
    var r;
    for (var p in _in) {
        if ( p === 10 ) {
            return _in[p];
        }
        if ( typeof _in[p] === 'object' ) {
            if ( (r = search(_for, _in[p])) !== null ) {
                return r;
            }
        }
    }
    return null;
}

提前谢谢

1 个答案:

答案 0 :(得分:1)

试试这个

var finder = function(needle, haystack) {
    if (haystack.length == 0) 
        return false

    if (haystack[0] == needle)
        return true

    return finder(pin, haystack.slice(1))
}

或者

var finder = function(pin, haystack) {
    return (haystack[0] == pin) || (haystack.length != 0) && finder(pin, haystack.slice(1)) 
}

递归FTW