计算 JS for 循环中变量中值的总和



我的脚本中有一个for循环,它循环遍历一组markerNodes结果。我想知道,创建一个total变量,将最后amount和输出中的整数值相加有多容易?

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

很容易添加

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

这是另一种方法。(通过使用 Array.reduce)

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

最新更新