javascript - 递归函数进行搜索

标签 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;
}

提前谢谢

最佳答案

试试这个

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

关于javascript - 递归函数进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27472214/

相关文章:

javascript - 使用 JS 单击跨度时更改跨度的 onClick

list - Haskell 自引用列表终止

javascript - 将数组添加到数组列表中为空

java - 循环时出现堆栈溢出错误

javascript - CSS 和 Javascript 在 Tomcat 8 或 9 上加载时间过长

javascript - 数组只能存储一种类型的对象?

javascript - 当我尝试打印多个参数时,它不会打印

c++ - 不使用标准函数反转字符串

templates - 如何使用 meteor 模板创建类似目录的结构?

javascript - 将暗模式/亮模式保存到本地存储