JavaScript For循环不会返回

时间:2016-08-23 15:13:50

标签: javascript loops return return-value

我的问题是在另一个for循环中调用的循环应该返回一个对象不会返回任何内容。当我为return语句设置断点时,对象就在那里但在我的回调函数中未定义。 types 对象是一个全局对象,它包含许多对象作为属性,其属性为“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);
}

1 个答案:

答案 0 :(得分:0)

试试这个:

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;
        }
    }
}