繁体   English   中英

JavaScript卡在“ for”循环中

[英]Javascript stuck at “for” loop

我是新手学习者,并且正在从codecademy学习基本的JavaScript。我被困在“ Search Text for Your Name”教程5/7中。

这是我的问题:

当循环达到第一个迭代器的值(例如,i)加上myName变量的长度时,循环应停止。

这是从教程到的一些信息:

您的第二个“ for”循环好吧! 最后一个循环步骤:这次在if语句的主体内(在if的{}之间)添加另一个for循环。

此循环将确保您姓名的每个字符都被推送到最终数组。 if语句说:“如果找到名称的第一个字母,请启动第二个for循环!” 这个循环说:“我要在数组中添加字符,直到达到用户名的长度为止。” 因此,如果您的名字是11个字母长,则循环中如果在文本中看到myName的第一个字母,则应该在匹配中添加11个字符。

对于第二个for循环,请记住以下几点:

首先,您需要将第二个循环的迭代器设置为从第一个循环开始,以便从该循环的终止位置开始。 如果您的第一个循环以

> for(var i = 0; // rest of loop setup 

你的第二个应该是这样的

> for(var j = i; // rest of loop setup Second

想一想您的循环何时停止。

最后,在循环体中,让程序使用hits的.push()方法。 就像字符串和数组具有.length方法一样,数组具有.push()方法,该方法将括号之间的内容添加到数组的末尾。 例如,

newArray = [];
newArray.push('hello');
newArray[0];   // equals 'hello'

这是我的代码:

multistr:true

var text = "Hey, how are you \
doing? My name is Emily.";
var myName = "Emily";
var hits = [];

for (var i = 0; i > text.length; i++) 
{
   if (text[i] === 'E') 
   {

    for(var j = i; j > text.length; j++){


    };



    }; 
};

ps:我不想不了解就通过本教程。 请帮我。 教我。

for (var i = 0; i > text.length; i++) should be
for (var i = 0; i < text.length; i++)

否则它将永远无法满足启动循环的条件。

欢迎登机! 您将>与<混淆了。 您的循环将无法运行,因为对于i = 0的第一次检查,它肯定不包含0> text.length,因为text.length至少为0(没有比空字符串短的字符串)。

您应该养成手动完成循环的前两个步骤的习惯,然后检查循环结束之前会发生什么。

这是我得到的代码:

for ( i = 0; i < text.length; i++)
{

if ( text[i] === "E")
{
        for( var j = i; j < (myName.length + i ); j++)
        {
                    hits.push(text[j]);
        }

}

};

看来您在第二个for循环中缺少了“ + i”部分。 这似乎可以确保将包含第一个循环。 我尝试了没有“ + i”的情况,但它不起作用。

我尝试使用“ + j”直接从第二个for循环继续,这只会使浏览器崩溃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM