2016-11-28 72 views
0

我在腳本中有一個for循環,循環訪問一組markerNodes結果。我想知道,創建一個total變量有多簡單,它在最後輸出amount &輸出中的整數值?計算循環中JS變量中的值的總數

for (var i = 0; i < markerNodes.length; i++) { 
    var name = markerNodes[i].getAttribute("name"); 
    var address = markerNodes[i].getAttribute("address"); 
    var amount = markerNodes[i].getAttribute("amount"); 
    var distance = parseFloat(markerNodes[i].getAttribute("distance")); 
    var latlng = new google.maps.LatLng(
     parseFloat(markerNodes[i].getAttribute("lat")), 
     parseFloat(markerNodes[i].getAttribute("lng"))); 
    createOption(name, distance, i); 
    createMarker(latlng, name, address, total); 
    bounds.extend(latlng); 
} 

回答

2

很容易添加

var total = 0; 
for (var i = 0; i < markerNodes.length; i++) { 
    var name = markerNodes[i].getAttribute("name"); 
    var address = markerNodes[i].getAttribute("address"); 
    var amount = markerNodes[i].getAttribute("amount"); 

    total += parseFloat(amount); 

    var distance = parseFloat(markerNodes[i].getAttribute("distance")); 
    var latlng = new google.maps.LatLng(
     parseFloat(markerNodes[i].getAttribute("lat")), 
     parseFloat(markerNodes[i].getAttribute("lng"))); 
    createOption(name, distance, i); 
    createMarker(latlng, name, address, total); 
    bounds.extend(latlng); 
} 

console.log(total); 
+0

只有輕微這裏的問題是,它並沒有真正數學加'amount'值加在一起 ​​- 只是一個巨大的數字串將它們結合在一起。 – michaelmcgurk

+2

然後看到該行後面的註釋,使用'parseFloat(amount)'@michaelmcgurk – baao

+1

在回答中編輯它@michaelmcgurk – baao

0

這是另一種方法。 (通過使用Array.reduce)

var total = Array.prototype.reduce.call(
    markerNodes, 
    (prev, cur) => prev + Number(cur.getAttribute("amount")), 
    0 
); 
+0

真正的孤立,但這是多餘的迭代,如果你已經有一個for循環 – aw04

+0

@ aw04你是對的。 –