我想写一个函数来搜索一个元素的对象并返回它的父数组。这段代码看起来应该起作用,但它只返回undefined,有人可以解释为什么吗?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'块返回。嵌套函数中的'return'语句不会以任何方式影响它们的外部函数。这是一个简化的例子:'function foo(){function bar(){return 42; }}。当被调用时,'foo'返回什么? –
@FelixKling你能详细点吗? –
@FelixKling是的,但你不叫酒吧? –