2017-04-26 5 views
0

Ich möchte die Summe aller gefahrenen Meilen berechnen. Zum Beispiel, 50 + 70 + 20 = 140.Additionsberechnung innerhalb des Arrays

habe ich versucht, den folgenden Code, aber alle, die zurückgegeben wurde, war 'NaN':

var totalmiles = car1.miles + car2.miles + car3.miles 

Dies ist der Code Ich arbeite mit:

var car1 = {type:"Holden", miles:50}; 
 
var car2 = {type:"Ford", miles:70}; 
 
var car3 = {type:"BMW", miles:20}; 
 
var cararray = [car1, car2, car3]; 
 
var totalmiles = car1.miles + car2.miles + car3.miles 
 

 
console.log(totalmiles);

+1

Der Code in der Frage gibt 'gezeigt 140', nicht' NaN'. Ist das wirkliche Problem, dass Sie wissen möchten, wie man die Werte in 'cararray' zusammenfasst, ohne direkt auf die Variablen' car1', 'car2' und' car3' zu verweisen? – nnnnnn

+0

Entschuldigung ja der obige Code funktioniert. Es würde für mich zu der Zeit wegen anderen nicht funktionierenden Codes nicht funktionieren, die ich jetzt repariert habe. – Mithrandir

Antwort

0

Sie sind nicht einmal hier, um das Array. Wenn Sie das Array in Zukunft verwenden müssen, versuchen Sie reduce für eine schöne Ein-Zeilen-Lösung. Eine for..of Schleife funktioniert ebenfalls, benötigt aber mehr Zeilen.

var car1 = {type:"Holden", miles:50}; 
 
var car2 = {type:"Ford", miles:70}; 
 
var car3 = {type:"BMW", miles:20}; 
 
var cararray = [car1, car2, car3]; 
 

 
function getSumReduce(arr) { 
 
    // 0 is the starting value of "sum" 
 
    return arr.reduce((sum, car) => sum + car.miles, 0); 
 
} 
 

 
function getSumLoop(arr) { 
 
    var sum = 0; 
 
    for (var car of arr) { 
 
    sum += car.miles; 
 
    } 
 
    return sum; 
 
} 
 
    
 

 
console.log(getSumReduce(cararray)); 
 
console.log(getSumLoop(cararray));

Verwandte Themen