Apps 脚本总结查询数据(原始数据是数字)导致连接

Apps Script summing up Query Data (original data is number) results in concatenation

我在尝试使用 Apps 脚本处理查询数据(由 Google Sheet 中的查询函数生成的数据)时遇到了以下问题:

  var summe = 0;
  for (i=0;i<data.length;i++) {
    for (k=0;k<data[i].length;k++){
      summe = summe + data[i][k];
      console.log(...); # to track exactly which column's value becomes text 
      console.log(summe);
    }

执行日志中的结果表明,从某个点开始它开始连接文本而不是求和值: enter image description here

非常感谢您提供的任何帮助或想法!!!

此致, 旭波

您可以通过手动将数据转换为数字来避免此问题:

summe = summe + Number(data[i][k]);

参见Number

除了 Zicanotchka 的回答。有一种方便的方法可以跟踪变量的类型:

var a = 1;
var b = "1";
var c = [1];

console.log(a.constructor.name) // Number
console.log(b.constructor.name) // String
console.log(c.constructor.name) // Array

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor