我是新手学习者,我正在学习来自codecademy的基本javaScript。我坚持在"搜索文本为你的名字"教程5/7。
这是我的问题:
你的循环应该在它遇到第一个迭代器的值时停止(比方说,i) 加上myName变量的长度。
这里有一些来自教程的信息:
你的第二个" for"环 好的!最后一个循环步骤:添加另一个for循环,这次是在if语句的主体内(在if' s {}之间)。
此循环将确保您名字的每个字符都被推送到最终数组。 if语句说:"如果我们找到名字的第一个字母,则启动第二个for循环!"这个循环说:"我要在数组中添加字符,直到我达到用户名字的长度。"因此,如果您的名字长度为11个字母,那么如果它在文本中看到myName的第一个字母,那么您的循环应该为点击添加11个字符。
对于您的第二个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 :(得分:2)
for (var i = 0; i > text.length; i++) should be
for (var i = 0; i < text.length; i++)
否则它甚至不会满足甚至启动循环的标准。
答案 1 :(得分:1)
欢迎登机!你困惑&gt;与&lt;。你的循环不会运行,因为当i = 0时第一次检查它肯定不能保持0&gt; text.length,因为text.length至少为0(没有比空字符串短的字符串)。
你应该习惯在前两个步骤中手动完成循环,然后检查循环结束前发生的事情。
答案 2 :(得分: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循环继续,并且只会崩溃浏览器。