Я изо всех сил пытаюсь вернуть одну из моих функций JavaScript. Пожалуйста, соблюдайте следующий код:Возвращаемое значение (вполне) базовой функции "undefined"?
function GW2API_getEventInfo(p_eventid) {
console.log("Getting EventInfo for event " + p_eventid);
$.each(arrEvents, function(i, eventItem) {
$.each(eventItem, function(j, eventInfo) {
if (eventInfo.event_id == p_eventid) {
console.log(GW2API_getEventName(p_eventid) + " - " + eventInfo.state);
return {
'name': GW2API_getEventName(p_eventid),
'state': eventInfo.state
};
}
});
});
}
Теперь я хотел бы вернуть объект с двумя свойствами: «имя» и «состояние». Однако, независимо от того, что я добавляю под console.log
, моя функция ничего не возвращает (хотя данные найдены, поэтому консоль регистрирует).
currEvent = GW2API_getEventInfo(GW2API_events_ShadowBehemoth[i]);
alert(currEvent)
-> дает "неопределенными"
Посмотрите на этот ответ: http://stackoverflow.com/a/14441307/1233508. Вам нужно создать переменную на верхнем уровне функции, присвоить значение, которое вы хотите вернуть, а затем вернуть ее после завершения циклов. – DCoder
Куда вы ожидаете от этого результата? Это анонимная функция, которая передается как аргумент функции jQuery. Эта функция ** ** возвращает ваш объект, он просто не возвращается в ваш код. –
Спасибо всем за ваши ответы здесь. В самом деле, очень глупая ошибка моей, не возвращающая возвращаемое значение из внутреннего в внешний контур. После объявления переменной на верхнем уровне функции и просто присваивания ей данных в цикле (и возвращения заполненной переменной после циклов) работает как шарм !! – Tribio