JavaScript For 循环不 return

JavaScript For Loop does not return

我的问题是在另一个 for 循环中调用的循环应该 return 一个对象没有 return 任何东西。当我为 return 语句设置断点时,对象在那里但在我的回调函数中未定义。 types object 是一个全局对象,它包含许多对象作为具有属性 "title" 和 "id".

的属性
function searchObj(obj, query) {
    for (var key in obj) {
        var value = obj[key];

        if (typeof value === 'object') {
            searchObj(value, query)
        }

        if (value === query) {
            return obj;
        }
    }
}

从这里调用函数:

function callback(data){
var logs = [];
var results = data.d.results;

for (var i = 0; results.length; i++) {
    var item = results[i];

    var action = util.searchObj(types, item.ActionId);

    var obj = {
        'Created': item.Created,
        'Text': String.format(action.title, item.Author.Title),
        'Author': item.Author
    }
    logs.push(obj);
}
console.log(logs);
}

试试这个:

function searchObj(obj, query) {
    for (var key in obj) {
        var value = obj[key];

        if (typeof value === 'object') {
            var result = searchObj(value, query);
            if (result) {
                return result;
            }
        }

        if (value === query) {
            return obj;
        }
    }
}