2017-04-26 15 views
0

移動した全マイルの合計を計算したいと思います。例えば、50 + 70 + = 140配列内の加算計算

20私は、次のコードを試みたが、返されたことすべてが 'NaNに' でした:

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'。 'car1'、' car2'、 'car3'変数を直接参照せずに、' cararray'の値をどのように集計するのかを知りたいというのは本当の問題ですか? – nnnnnn

+0

申し訳ありません、上記のコードは動作します。私が今修正した他の機能しないコードのため、当時私にとってはうまくいかなかったでしょう。 – Mithrandir

答えて

0

あなたも、ここで配列を使用していません。将来アレイを使用する必要がある場合は、reduceを使用してワンラインソリューションを試してみてください。 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));

関連する問題