2016-06-01 4 views
0

drucken Wenn ich dies in Codeacademy Labs eingibt, gibt es die Summe zurück. Aber ich kann nicht herausfinden, warum es nicht drucken/protokollieren/die Summe zurückgeben wird, wenn ich es erzähle.Projekt Euler JavaScript # 2 Kann nicht herausfinden, wie man die Summe

var a = 0, 
b = 1, 
f = 1, 
fibNums = []; 
sum = 0; 


while (f < 4000000) { 
    f = a + b; 
    if (f > 4000000) { 
     break; 
    } else { 
     a = b; 
     b = f; 
     fibNums.push(f); 
     i ++; 
    } 
} 

for (i =0; i < fibNums.length; i++) { 
    if (fibNums % 2 === 0) { 
     sum += fibNums(i); 
    } 
} 
+2

wie versuchen Sie/Protokoll drucken/die Gesamt zurückkehren? – Hamms

+0

Es gibt einen Fehler in 'while' Schleife' i ++ 'hat kein Leerzeichen zwischen' i' und '++'. Bitte erläutern Sie, was Sie ausdrucken/loggen/zurückgeben möchten. –

Antwort

1

Sie haben mehrere Fehler in Ihrem Code.

Sie müssen mit [] und nicht mit () auf Array-Elemente zugreifen. In Ihrem Fall ist die Summe immer 0, da Sie auf Array falsch zugreifen.

Hier ist der Arbeitscode:

var a = 0, 
 
    b = 1, 
 
    f = 1, 
 
    fibNums = []; 
 
sum = 0; 
 

 

 
while (f < 4000000) { 
 
    f = a + b; 
 
    if (f > 4000000) { 
 
    break; 
 
    } else { 
 
    a = b; 
 
    b = f; 
 
    fibNums.push(f); 
 
    
 
    } 
 
} 
 

 
for (var i = 0; i < fibNums.length; i++) { 
 
    if (fibNums[i] % 2 == 0) { // access array elements using [] notation 
 
    sum += fibNums[i]; // access array using [] 
 
    } 
 
} 
 

 
console.log(sum); // Log the sum 
 
console.log(fibNums); //log the fibNums array

+0

Bitte erläutern Sie die Änderungen, die Sie vorgenommen haben und warum Sie sie erstellt haben. – Hamms

+0

@Hamms: Sie können die Kommentare im Code lesen. –

+0

@AndrewL: Bitte weisen Sie auf Fehler wenn, damit ich es korrigieren kann –