使用For循环在数组中递归搜索

麦克风

我知道有更好的方法来搜索数组,但是我真的想了解在递归调用中找到值时如何返回。发现时记录日志不是问题,但是发现时似乎无法使此返回为真。

问题是基本的。使用for循环和递归,在多维数组中完全搜索一个值,如果找到则返回true,否则返回false。我尝试过返回递归函数以及我能想到的所有其他功能,但是没有什么能完全起作用。

function lookForKey( arr ){
    for ( let i = 0; i < arr.length; i++ ) {
        if( arr[i] == "key" ){
            console.log( "Key found.");
            return true;
        } else if( Array.isArray( arr[i] ) ){
            lookForKey( arr[i] );
        }
    }

    return false;
}

let arr = [
    ["foo", "bar"],
    ["foo", "bar", "key"]
];

console.log( lookForKey( arr ) );

我对此表示感谢!

塔普拉

function lookForKey( arr ){
    for ( let i = 0; i < arr.length; i++ ) {
        if( arr[i] == "key" ){
            console.log( "Key found.");
            return true;
        } else if( Array.isArray( arr[i] ) ){
            if (lookForKey(arr[i])) return true;
        }
    }

    return false;
}

let arr = [
    ["foo", "bar"],
    ["foo", "bar", "key"]
];

console.log( lookForKey( arr ) );

有两个变化。首先,您必须在递归调用上获得回报。但是,如果递归调用返回false,则您不希望立即从调用方返回。您要继续循环。因此,您可以将其设置为条件条件,并且仅在递归调用返回true时才返回true。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JQuery中使用属性名称在数组中搜索

来自分类Dev

使用Angular在数组中循环遍历

来自分类Dev

在数组中搜索总和

来自分类Dev

在数组中递归移动

来自分类Dev

在数组中搜索char

来自分类Dev

使用.filter在数组中搜索数组

来自分类Dev

替代使用过多的for()循环在数组中搜索匹配项

来自分类Dev

在数组中搜索带有for循环的名称

来自分类Dev

在数组上使用递归

来自分类Dev

使用for循环在数组C ++中建立模式

来自分类Dev

在数组中搜索

来自分类Dev

使用for循环搜索数组

来自分类Dev

使用递归在数组中查找元素-JavaScript

来自分类Dev

对象数组中的递归循环

来自分类Dev

在数组中搜索课程

来自分类Dev

在数组中添加数字,没有任何循环。我解决了使用递归。有没有更好的办法?

来自分类Dev

使用For Each循环在数组中添加字符串

来自分类Dev

使用while循环在数组中搜索特定值

来自分类Dev

Javascript:在数组数组中搜索数组

来自分类Dev

使用foreach循环在数组中构造对象

来自分类Dev

如何使用循环将名称存储在数组中?

来自分类Dev

(Dafny) 在数组中搜索 - 以零为界的循环变量?

来自分类Dev

有没有办法在没有循环的情况下使用 bash 在数组中搜索相同性?

来自分类Dev

关于在数组中搜索

来自分类Dev

在javascript中使用for循环在数组中搜索值

来自分类Dev

使用 for-each 循环在数组列表中搜索字符串

来自分类Dev

在数组中搜索以查看每个对象已被使用的次数

来自分类Dev

在数组中搜索对象

来自分类Dev

在数组中搜索值