Apps 脚本总结查询数据(原始数据是数字)导致连接
Apps Script summing up Query Data (original data is number) results in concatenation
我在尝试使用 Apps 脚本处理查询数据(由 Google Sheet 中的查询函数生成的数据)时遇到了以下问题:
- 使用的查询函数:=Query('data source', "select ...sum(..)... where ... group by... pivot..."
- 使用的脚本:
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
我在尝试使用 Apps 脚本处理查询数据(由 Google Sheet 中的查询函数生成的数据)时遇到了以下问题:
- 使用的查询函数:=Query('data source', "select ...sum(..)... where ... group by... pivot..."
- 使用的脚本:
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