2015-03-08 252 views
0

我是新手学习者,我从codecademy学习基本的javaScript。我坚持在“为您的姓名搜索文本”教程5/7。Javascript卡在“for”循环中

这里是我的问题:当它击中了第一个迭代器的值

你的循环应该停止(比如我) 加上你MYNAME变量的长度。

这里是一些信息供教程:

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

此循环将确保您的名字的每个字符被推送到最终数组。 if语句说:“如果我们找到了名字的第一个字母,那么开始第二个循环!”这个循环说:“我要添加字符到数组中,直到我达到用户名的长度。”所以如果你的名字是11个字母,你的循环应该添加11个字符,如果它在文本中看到myName的第一个字母。

你的第二个for循环,请记住以下几点:

首先,你要设置你的第二个循环的迭代器在第一个开始,那么,一个不放过它拿起。如果你的第一循环与

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

开始你的第二个应该是这样

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

好好想想当你的循环应该停止。

最后,在你的循环体中,让你的程序使用.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:我不想通过本教程不明白。请帮帮我。教我。

+0

我改变为“for(var i = 0; i umuur 2015-03-08 19:44:21

回答

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

否则它将永远不会满足甚至开始循环的标准。

1

欢迎加入!您与<混淆。您的循环将不会运行,因为对于第一次检查,当i = 0时,它肯定不会保留0> text.length,因为text.length至少为0(没有比空字符串短的字符串)。

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

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”的情况下尝试了它,它不起作用。

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