在Google Apps脚本中打印到控制台?

我对编程非常陌生(已经学习了一些关于Codecademy的JS课程)。 我试图创build一个简单的脚本来确定,如果从扑克游戏结果给出一个电子表格,谁应该支付给谁。 我打开了Google Apps脚本,编写了以下内容开始:

function addplayerstoArray(numplayers) { var playerArray = []; for (i=0; i<numplayers; i++) { playerArray.push(i); } } addplayerstoArray(7); console.log(playerArray[3]) 

这个想法是创build一个数组,其中包含玩家总数。 运行代码时,我认为会打印“3”到控制台。 但没有发生。 它说:“ReferenceError:”控制台“没有定义。”

A)我不明白Google Apps脚本控制台如何在打印方面的工作,以便我可以看到我的代码是否正在完成我想要的function?

B)这是代码问题吗?

提前致谢。

控制台不可用,因为代码在云中运行,而不是在浏览器中运行。 相反,使用由GAS提供的logging器类:

 Logger.log(playerArray[3]) 

然后在查看>日志下的IDE中查看结果…

这里有一些使用GASlogging的文档。

编辑:2017-07-20 Apps脚本现在还提供Stackdriver日志logging 。 在查看 – 控制台日志下的脚本编辑器中查看这些日志。

只是build立在上面的vinnief的哈克解决scheme,我使用MsgBox这样的:

 Browser.msgBox('BorderoToMatriz', Browser.Buttons.OK_CANCEL); 

它的行为就像一个断点,停止脚本,并输出你需要的任何string到popup框。 我特别发现在表格中,Logger.log有问题,这提供了一个最适合的解决方法。

在谷歌脚本项目中,您可以创buildhtml文件(例如:index.html)或gs文件(例如:code.gs)。 .gs文件在服务器上执行,您可以像@Peter Herrman所描述的那样使用Logger.log。 但是,如果该函数是在.html文件中创build的,它正在用户的浏览器上执行,您可以使用console.log。 Chrome浏览器控制台可以通过Windows / Linux上的Ctrl Shift J或Mac上的Cmd Opt J查看

如果你想在一个html文件上使用Logger.log,你可以使用scriptlet从html文件中调用Logger.log函数。 要做到这一点,你会插入<? Logger.log(某些东西)?>用你想logging的任何东西replace。 标准脚本,使用语法<? …?>,执行代码而不显式输出内容到页面。

即使Logger.log()在技​​术上是将某些东西输出到控制台的正确方法,但它有一些烦恼:

  1. 输出可能是一个非结构化的混乱,很难快速消化。
  2. 您必须先运行该脚本,然后单击查看/日志,这是两个额外的点击(如果您还记得Ctrl + Enter键盘快捷键,则为一个)。
  3. 您必须插入Logger.log(playerArray) ,然后在debugging之后,您可能需要删除Logger.log(playerArray) ,因此还需要额外的1-2个步骤。
  4. 你必须点击确定closures覆盖(又一次额外的点击)。

相反,只要我想debugging一些东西,我添加断点(点击行号)并按下debuggingbutton(错误图标)。 当你将一些东西分配给一个variables的时候,断点很好地工作,但是当你启动一个variables并且想在稍后的时间里偷看它时,断点并不是那么好,这和操作类似。 在这种情况下,我会通过input“x”(x标记点!)来强制执行一个运行时错误:

在这里输入图像说明

与查看日志相比较:

在这里输入图像说明

debugging控制台包含更多的信息,比日志覆盖更容易阅读。 这种方法的一个小优点是,如果保持干净的代码是你的事情,那么你不必担心会用一堆日志命令污染你的代码。 即使你input“x”,你也不得不记得把它作为debugging过程的一部分去除,否则你的代码将不能运行(内置清理措施,yay)。