Por que o valor de retorno da função é indefinido quando retornado em um loop?
Eu não consigo entender porque isso está acontecendo.
A função a seguir sempre retorna indefinida. Mesmo quando a condição é satisfeita e um valor deve ser retornado.
Aqui está uma instância da variável 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;
}
});
}
No entanto, se eu definir uma variável dentro do loop, em seguida, retornar essa variável, uma vez que o loop termina a execução, o valor correto é retornado.
function GetAnswerForProcessQuestion(pprID)
{
var answer;
$.each(answerCollection, function (index, item)
{
var thisPprID = item["PprID"];
if (thisPprID == pprID)
{
answer = item["Answer"];
}
});
return answer;
}
Alguma idéia de por que não posso retornar um valor de dentro do loop?