【发布时间】:2017-01-14 00:03:02
【问题描述】:
我编写了以下代码来实现自定义 Google 电子表格功能;目标是编写名称列在“名称”参数中的团队之间所有可能的游戏:
function ALLGAMES( names )
{
var nbTeams = names.length;
var gameList = [];
for( var t1=0; t1<nbTeams-1; t1++ ) {
for( var t2=t1+1; t2<nbTeams; t2++ ) {
gameList.push( [ new String(names[t1]), new String(names[t2]) ] );
//A. gameList.push( [ t1, t2 ] );
}
}
// B. return JSON.stringify(gameList)
// C. return [[ 'a', 'b' ], ['c', 'd']]; //using the value returned by JSON.stringify
return gameList;
}
当我在电子表格中使用该函数时,它用空白值填充单元格,而不是团队名称。
但是,在以下任何情况下,行为都符合预期:
- 如果我使用 A. 行(推数字 而不是 字符串),它会正确显示所有数字
- 如果我使用 B. 行(返回数组的 JSON 字符串),它会显示正确的 JSON 字符串
- 如果我使用 C. 行(完整返回数组),它会按预期工作。
问题出在哪里?
编辑 1:
【问题讨论】:
-
我建议在推送调试问题之前打印(记录)new String(names[t1]), new String(names[t2])
-
添加您用来调用自定义函数的公式。如果您使用引用作为参数,请添加引用的值。
-
@Eugene 日志显示正确的字符串,这与我取消注释 B 行并获取数组的 JSON 字符串的情况一致。
标签: javascript google-apps-script google-sheets