Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中正确求和数组_Javascript_Arrays_For Loop - Fatal编程技术网

如何在JavaScript中正确求和数组

如何在JavaScript中正确求和数组,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我在获取数组的和时遇到了一个问题。我使用的是Adwords脚本,它的工作原理类似于javascript。我可以“打印”出我感兴趣的数字数组。比如[23369.2,0.0,0.0,0.0,0.0,0.0,0.0]。但是,当我使用for循环将它们相加时,结果会生成NaN(不是数字)。我真的不知道该怎么办 var spend = []; function main() { var campaignsIterator = AdWordsApp.campaigns().get(); var su

我在获取数组的和时遇到了一个问题。我使用的是Adwords脚本,它的工作原理类似于javascript。我可以“打印”出我感兴趣的数字数组。比如
[23369.2,0.0,0.0,0.0,0.0,0.0,0.0]
。但是,当我使用for循环将它们相加时,结果会生成
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);
}

您需要使用
0
初始化
sum
,否则该值是
未定义的

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

var sum = 0;
//      ^^^
var a,
b=0;
a+=1;
b+=1;
console.log(a);//楠

控制台日志(b);//1
您还可以定义
求和
并在一个干净的一行中实际求和数组:

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

下面是一个获取数组和的简单函数

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)

谢谢现在效果很好。