2013-12-15 65 views
0

我想在Codecademy學習JavaScript。我正在研究關於for循環的this problem,我無法弄清楚我的代碼有什麼問題。它說「在條件表達式中賦值」,但我不知道這意味着什麼。這是說錯誤在第二個for聲明。條件表達式中的賦值

目標是將hits的值更改爲text變量字符串中包含的名稱。

這裏是我的代碼:

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

+1

作業應該做什麼?有條件的,如'if'。 –

+1

「text」在哪裏? – HICURIN

+1

給出的任務鏈接 –

回答

2

=是分配,但在條件語句中,你需要檢查相等(==),檢查,如果事情是更大(>),檢查,如果事情是少(<)等要指定變量j的長度myName而不是在這條線的一些檢查條件:

for(var j = i;j = myName.length;){ 

相反,你可能需要做這樣的事情:

for(var j = i;j <= myName.length;){ 

但是,這可能不一定是Codecademy Assignment的解決方案,但它會解決您特定的javascript錯誤。玩弄並閱讀<,>,==和其他條件提到here試圖找出什麼工作。

編輯:如果您想解決您的整個問題,在問題中發佈問題鏈接並不僅僅是提及您遇到的具體錯誤,而是解釋整個問題。話雖如此,你在這裏錯過了幾件事:

  1. 你正在做任務,而不是像上面解釋的那樣檢查一個條件。
  2. Franklin在註釋中提到您忘記了在for循環中增加j。你需要做j++
  3. 您並未停在字符串中的正確位置。正如Codecademy所說的那樣:「...當您的第二個for循環在字符串+ myName.length達到當前點時應該停止。」這意味着您需要停止在text.length + myName.length而不是僅僅myName.length。這也意味着你應該使用<而不是<=,正如我上面的建議。

把所有的一起,解決的辦法是把這個行:

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

代替這一行:

for(var j = i;j = myName.length;){ 
+0

好吧我改變了這一點,這就是codecademy所說的:糟糕,再試一次。小心:你的第二個'for'循環應該在到達字符串+ myName.length中的當前點時停止。 – maxgee

+1

@maxgee遞增j – Franklin

+0

我編輯了我的答案,並試圖給出更多的解釋。 – stiemannkj1

2

將其更改爲for (var j = i; j === myName.length;) {

你使用,你應該使用條件/布爾賦值。

+0

我改變了它,網站告訴我這回: 糟糕,再試一次。小心:你的第二個'for'循環應該在到達字符串+ myName.length中的當前點時停止。 – maxgee

0

試試這個

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

我也在努力,最後我明白了Codecademy的意思:「..它的當前點在字符串+ myName.length「 只需要添加myName.length。

var text = "Aoday I woke up beside the loveliest girl on planet Earth"; 
var myName = "Aleksei"; 
var hits = []; 
for(i=0; i < text.length; i++){ 
    if(text[0] === myName[0]){ 
     for(var j = i; j <= myName.length; j++){ 
      hits.push(text[j] + myName.length); 
      } 
     } 
    } 

順便說一句,text和myName的內容應該同時開始兩個字母。希望我是對的,並希望它有幫助!