Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么for循环函数返回else代码而不是输入if true代码?_Javascript_Arrays_For Loop_While Loop - Fatal编程技术网

Javascript 为什么for循环函数返回else代码而不是输入if true代码?

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

我创建了一个for循环,以从对象数组中返回某个“intentname”变量(请参见下面的代码片段1)。想要的结果是它返回第二个对象(其中nodename1==“Frage”)。不幸的是,它返回else语句,即“”(请参阅下面的代码段2)

代码片段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"}
代码段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