我想寫一個函數來搜索一個元素的對象並返回它的父數組。這段代碼看起來應該起作用,但它只返回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是的,但你不叫酒吧? –