2016-06-21 10 views
1

Ich versuche, eine Funktion zu erstellen, die die Zahlen in einem Array hinzufügen und ihre Summe zurückgeben. Aus irgendeinem Grund gibt es 1 anstelle von 15 und ich bin mir nicht sicher warum.Erstellen einer Funktion, die Zahlen in einem Array hinzufügt und ihre Summe in Javascript zurückgibt

var myArray = [1,2,3,4,5]; 
function addThemUp(myArray) { 
    var arrayTotal = myArray.length; 
    var totalSum = 0; 

    for(var x = 0; x <arrayTotal; x++) { 
     totalSum += myArray[x]; 
     return(totalSum) 
    } 
} 

addThemUp(myArray) 
+0

Sie scheinen einige Code zu fehlen – theblindprophet

+0

Ups, Entschuldigung. Hier ist der fehlende Code: – Aaron

+2

Es ist, weil Ihre Rückkehr RECHT in der ist. Also, es läuft einmal und kehrt zurück. Boom. erledigt. Verschieben Sie den Rückgabewert außerhalb der FOR-Schleife. – durbnpoisn

Antwort

2

Sie sollten Summe nach for Schleife zurückkehren

var myArray = [1, 2, 3, 4, 5]; 

function addThemUp(myArray) { 

    var arrayTotal = myArray.length; 
    var totalSum = 0; 

    for (var x = 0; x < arrayTotal; x++) { 
     totalSum += myArray[x]; 
    } 
    return totalSum; 
} 

console.log("Sum of all elements: " + addThemUp(myArray)); 
+0

Bereits gefragt und hat eine viel bessere Lösung: http://StackOverflow.com/a/16751601/185672 – Phil

+1

Ich implementierte den OP-Code und änderte den Code, um Ihre Antwort widerzuspiegeln und es funktionierte. –

+0

Das war das Problem. Ich hatte meine Rückkehr in der for-Schleife. Danke für die Hilfe – Aaron

4

Sie stellte die return Anweisung innerhalb der Schleife, so wird es das erste Element nur summieren und dann zurück. Stattdessen sollten Sie die Schleife erlauben zu vervollständigen, und die Summe Rückkehr erst nach seiner getan:

function addThemUp (myArray) { 

    var arrayTotal = myArray.length; 
    var totalSum = 0; 

    for(var x = 0; x < arrayTotal; x++){ 
     totalSum += myArray[x]; 
    } 

    return(totalSum); // This is where the return should be 
} 
+1

Das hat definitiv geholfen. Das war mein Problem. – Aaron

3

In Ihrem Fall müssen Sie beheben, wo die Rückkehr von totalSum ist, die letzte Anweisung Ihrer Funktion zu sein (nach der Schleife).

That being said, können Sie feststellen, dass alle Zahlen in einem Array Aufsummierung ist viel sauberer und einfacher zu tun reduzieren:

function addThemUp(myArray) { 
 
    return myArray.reduce(function(a, b) { return a + b; }); 
 
} 
 

 
var myArray = [1, 2, 3, 4, 5]; 
 
console.log(addThemUp(myArray));

Verwandte Themen