【发布时间】:2015-04-05 13:21:00
【问题描述】:
我的 JavaScript 代码在本地运行和在 Google 表格中运行时返回不同的输出。下面的代码采用 2 个数组(一个包含标签,一个包含数据)并根据标签对数据求和:
function removeDuplicateSum(label, data) {
var result = {};
for (var i = 0; i < label.length; i++) {
if (label[i] in result) result[label[i]] += data[i];
else result[label[i]] = data[i];
};
return result;
}
这是一个示例输出:
function printObject(obj) {
// helper function to print the object
return JSON.stringify(obj);
}
c = [1, 2, 3, 4, 5]
b = ['a', 'a', 'b', 'b', 'c']
console.log(printObject(removeDuplicateSum(b, c)));
>>> {"a":3,"b":7,"c":5} // Correct output
但是当我将它用作 Google 表格中的自定义函数时,它会返回一个空对象:
该单元格中的输出只是一个空字符串 ("")。我希望它返回这个字符串 "{"a":3,"b":7,"c":5}"。
我还有另一个函数,它在本地返回 int,但在 Google 表格中返回 string - 另一个例子说明 JavaScript 在 Google 表格中的工作方式有何不同。
为什么我的 JavaScript 代码在 Google Apps 脚本中(特别是在 Google 表格中)的工作方式如此不同?我在哪里可以找到有关 Google Apps 脚本和网络环境?
非常感谢。
【问题讨论】:
-
调试它并查看输入数据类型。 Apps 脚本使用常规未修改的 javascript
标签: javascript google-apps-script