【发布时间】:2020-12-17 01:58:54
【问题描述】:
我创建了一个 for 循环以从对象数组中返回某个“intentname”变量(参见下面的代码 sn-p 1)。想要的结果是它返回第二个对象(其中 nodename1 === "Frage")。不幸的是,它返回 else 语句,即 ""(参见下面的代码 sn-p 2)。
代码 sn-p 1:这是我的对象数组:
0: {intentname: "projects/myteachingbot-arxmxd/agent/intents/a0a95fa7-a676-417e-b121-23f988cc492c", nodename1: "Startpunkt"}
1: {intentname: "projects/myteachingbot-arxmxd/agent/intents/89eca4bc-272f-4080-b7b1-9b8e76188826", nodename1: "Frage"}
2: {intentname: "projects/myteachingbot-arxmxd/agent/intents/34e621de-e110-4afb-80e0-1226605b2430", nodename1: "Feedback"}
3: {intentname: "projects/myteachingbot-arxmxd/agent/intents/eeb12d03-d763-4547-a5aa-b8a3f1d1a944", nodename1: "Tipp"}
4: {intentname: "projects/myteachingbot-arxmxd/agent/intents/b667fae9-d059-40d7-a832-c7e617a1fa80", nodename1: "Frage"}
5: {intentname: "projects/myteachingbot-arxmxd/agent/intents/a0a95fa7-a676-417e-b121-23f988cc492c", nodename1: "Startpunkt"}
代码 sn-p 2:这是带有 for 循环的 intentname() 函数:
const intentname = () => {
for (let i = 0; i < intent.length; i++) {
console.log(intent[0]);
console.log(intent[i].nodename1);
if (intent[0] != undefined && intent[i].nodename1 === "Frage") {
const intentname3 = intent[i].intentname;
console.log(intent[i].intentname);
return intentname3;
} else {
return "";
}
}
};
【问题讨论】:
-
浏览你的脚本。第一个元素不满足条件,因此它将在
else分支中结束。那里有一个return,它将停止函数的执行并“返回”一个值。将return ""移到for循环之后并删除else分支。 -
“
return语句结束函数执行并指定要返回给函数调用者的值。” -
完美的解释,现在它就像一个魅力:)。谢谢@Andreas
标签: javascript arrays for-loop while-loop