我有一个问题是得到我的数组的总和。我使用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);
}
答案 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)