2015-03-08 173 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」,並且只會崩潰瀏覽器。