Dlaczego wartość zwracana przez funkcję jest niezdefiniowana po zwróceniu w pętli?
Nie mogę zrozumieć, dlaczego tak się dzieje.
Następująca funkcja zawsze zwraca undefined. Nawet gdy warunek jest spełniony i wartość powinna zostać zwrócona.
Oto instancja zmiennej answerCollection.
[
Object
Answer: "2"
AnswerText: undefined
OpsID: "24"
PprID: "2"
Question: "How many colors?"
__proto__: Object
]
.
function GetAnswerForProcessQuestion(pprID)
{
$.each(answerCollection, function (index, item)
{
var thisPprID = item["PprID"];
if (thisPprID == pprID)
{
var answer = item["Answer"];
return answer;
}
});
}
Jeśli jednak ustawię zmienną wewnątrz pętli, a następnie zwrócę tę zmienną po zakończeniu wykonywania pętli, zwracana jest poprawna wartość.
function GetAnswerForProcessQuestion(pprID)
{
var answer;
$.each(answerCollection, function (index, item)
{
var thisPprID = item["PprID"];
if (thisPprID == pprID)
{
answer = item["Answer"];
}
});
return answer;
}
Jakieś pomysły, dlaczego nie mogę zwrócić wartości z wnętrza pętli?