내 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
};
}
});
});
}
이제 'name'과 'state'의 두 가지 속성을 가진 객체를 반환하고 싶습니다. 그러나, 아무리 내가 추가 console.log
아래에, 내 함수가 아무것도 반환하지 않습니다 (비록 데이터를 찾을 수 있으므로 콘솔 로깅). 당신은 아무것도 반환하지 않는 -
currEvent = GW2API_getEventInfo(GW2API_events_ShadowBehemoth[i]);
alert(currEvent)
- 그것은해야
이 답변을보십시오 : http://stackoverflow.com/a/14441307/1233508. 함수의 최상위 레벨에 변수를 만들고, 반환 할 값을 할당 한 다음 루프가 완료된 후에 반환해야합니다. – DCoder
어디로 돌아갈 것으로 예상합니까? 이것은 익명의 함수로 jQuery 함수의 인수로 전달됩니다. **이 함수는 ** 객체를 반환합니다. 이것은 단지 코드로 반환되지 않습니다. –
답장을 보내 주셔서 감사합니다. 사실, 안쪽에서 바깥 쪽 루프 반환 값을 반환하지 내 내 바보 같은 실수. 함수의 최상위 수준에서 변수를 선언하고 단순히 루프에서 데이터를 할당 한 후 (및 채우기 된 변수를 루프 후 반환) 매력처럼 작동합니다! – Tribio