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?

questionAnswers(8)

yourAnswerToTheQuestion