如何在JavaScript

时间:2017-02-21 14:49:17

标签: javascript arrays for-loop

我有一个问题是得到我的数组的总和。我使用Adwords脚本,其工作方式类似于javascript。我可以"打印出来"我的数组显示了我感兴趣的数字。就像[23369.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]一样。但是当我使用for-loop将它们添加到一起时,结果会产生NaN(非数字)。我真的不知道该怎么做。

var spend = [];

function main() {
  var campaignsIterator = AdWordsApp.campaigns().get();
  var sum;

  while(campaignsIterator.hasNext()) {
    var campaigns = campaignsIterator.next();
    var stats = campaigns.getStatsFor("THIS_MONTH");
    var costPerAdG = stats.getCost();

    spend.push(costPerAdG);
  }

  for(var i in spend){
    sum += parseInt(spend[i]);
  }

  Logger.log(spend);
}

3 个答案:

答案 0 :(得分:3)

您需要使用sum初始化0,否则值为undefined

如果添加数值,则会得到NaN - 如果添加字符串,则结果为'undefined' + string

var sum = 0;
//      ^^^



var a,
    b = 0;

a += 1;
b += 1;
console.log(a); // NaN
console.log(b); // 1 




答案 1 :(得分:0)

你也可以定义sum 实际上在一个干净的单行中总结你的数组:

var sum = spend.reduce((a, b) => a + b);

答案 2 :(得分:0)

这是一个获取数组总和的简单函数

function sumarr(arr){
    return arr.reduce(add, 0);
}

arr=[23369.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

sumarr(arr)