gpt4 book ai didi

javascript - 为什么在循环中返回时函数返回值未定义?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:36:05 24 4
gpt4 key购买 nike

我不明白为什么会这样。

下面的函数总是返回undefined。即使满足条件,也应该返回一个值。

这是 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;
}
});
}

但是,如果我在循环内设置一个变量,然后在循环执行完毕后返回该变量,则会返回正确的值。

function GetAnswerForProcessQuestion(pprID)
{
var answer;
$.each(answerCollection, function (index, item)
{
var thisPprID = item["PprID"];
if (thisPprID == pprID)
{
answer = item["Answer"];
}
});
return answer;
}

关于为什么我不能从循环内部返回值有什么想法吗?

最佳答案

$.each 返回值不会从父函数返回值。尝试这样做:

function GetAnswerForProcessQuestion(pprID)
{
var answer;
$.each(answerCollection, function (index, item)
{
var thisPprID = item["PprID"];
if (thisPprID == pprID)
{
answer = item["Answer"];
return false; // break loop
}
});
return answer;
}

关于javascript - 为什么在循环中返回时函数返回值未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com