javascript递归发现不返回

坦率的阿斯汀

我正在尝试编写一个函数来搜索对象中的元素并返回其父数组。这段代码看起来应该可以工作,但是只返回未定义的代码,有人可以解释为什么吗?

findInArray = function(el, obj) {

if(Array.isArray(obj)){

    obj.forEach(function(element) {
       if(element === el) {

        return obj;

       } else if (typeof element === 'object' && obj) {

         return findInArray(el, element);
       }
    })

} else if(typeof obj === 'object' && obj) {

    for(prop in obj) {

        if(typeof obj[prop] === 'object' && obj) {

            return findInArray(el, obj[prop]);
        }
    }
}

}
费利克斯·克林

您不是从第一个if街区返回

if(Array.isArray(obj)){
    obj.forEach(...)
}

因此函数返回undefined如果要返回回调返回的值,则必须重组代码。

Array#reduce在这里似乎合适:

return obj.reduce(function(result, element) {
   if (result) {
     return result;
   }
   if(element === el) {
     return obj;
   }
   if (typeof element === 'object' && obj) {
     return findInArray(el, element);
   }
}, null);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的发现不递归?

来自分类Dev

递归函数不返回

来自分类Dev

JavaScript中的递归-不递归

来自分类Dev

Python递归函数不返回

来自分类Dev

Python递归函数不返回

来自分类Dev

Python递归函数不返回

来自分类Dev

递归函数不返回数组

来自分类Dev

为什么我的递归JavaScript函数不返回字符串?

来自分类Dev

递归函数不返回对象值之和

来自分类Dev

递归函数不返回我想要的

来自分类Dev

递归选择不返回日期列表

来自分类Dev

递归函数不返回我想要的

来自分类Dev

函数“递归返回”的“类型不匹配”

来自分类Dev

退出递归而不返回任何方法

来自分类Dev

递归JavaScript值不再返回

来自分类Dev

我不了解JavaScript中的递归

来自分类Dev

JavaScript闭包返回递归函数

来自分类Dev

Javascript对象不返回变量

来自分类Dev

JavaScript 代码不返回数组

来自分类Dev

递归函数在Python中不返回任何值

来自分类Dev

SQLAlchemy递归CTE查询不返回非列成员吗?

来自分类Dev

递归函数能够打印,但是不返回正确的值

来自分类Dev

递归顺序搜索不返回值

来自分类Dev

为什么尾部递归不返回任何因果关系?

来自分类Dev

Files.newDirectoryStream(path)不递归地返回文件

来自分类Dev

模型中的递归函数不返回任何内容-Laravel

来自分类Dev

php递归函数不返回布尔值

来自分类Dev

为什么递归 cte 不返回重复项?

来自分类Dev

递归异步/等待请求不返回调用函数