2017-04-26 53 views
0

我想計算所有行駛里程的總和。例如,50 + 70 + 20 = 140陣列內的加法計算

我試着下面的代碼,但都被退回,這是「男」:

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

這是我的工作代碼:

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

在問題輸出'140',未'NaN'所示的代碼。真正的問題是你想知道如何總結'cararray'中的值,而不直接引用'car1','car2'和'car3'變量? – nnnnnn

+0

對不起,上面的代碼確實有效。由於我現在修復了其他不起作用的代碼,因此當時它不適用於我。 – Mithrandir

回答

0

你甚至不使用陣列在這裏。如果您將來需要使用該陣列,請嘗試使用reduce作爲一個很好的單線解決方案。 A for..of循環也可以工作,但它佔用更多的行數。

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));