Javascript 为什么for循环函数返回else代码而不是输入if true代码?
我创建了一个for循环,以从对象数组中返回某个“intentname”变量(请参见下面的代码片段1)。想要的结果是它返回第二个对象(其中nodename1==“Frage”)。不幸的是,它返回else语句,即“”(请参阅下面的代码段2) 代码片段1:以下是我的对象数组:Javascript 为什么for循环函数返回else代码而不是输入if true代码?,javascript,arrays,for-loop,while-loop,Javascript,Arrays,For Loop,While Loop,我创建了一个for循环,以从对象数组中返回某个“intentname”变量(请参见下面的代码片段1)。想要的结果是它返回第二个对象(其中nodename1==“Frage”)。不幸的是,它返回else语句,即“”(请参阅下面的代码段2) 代码片段1:以下是我的对象数组: 0: {intentname: "projects/myteachingbot-arxmxd/agent/intents/a0a95fa7-a676-417e-b121-23f988cc492c", node
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"}
代码段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 "";
}
}
};
const intentname=()=>{
for(设i=0;i
您的for循环没有运行多次,因为您正在使用return。在运行第一次迭代或通过intent[0]
像这样重构代码
const intentname=()=>{
for(设i=0;i
只需浏览脚本即可。第一个元素不满足条件,因此它将以else
分支结束。其中有一个return
,它将停止函数的执行并“返回”一个值。将return“
移动到for
循环之后,并删除else
分支。“该语句结束函数执行并指定要返回给函数调用方的值。”完美的解释,现在它就像一个符咒:)。谢谢@Andreas