Beantwortung der OP-Fragen
A) Was verstehe ich nicht über die Funktionsweise der Google Apps Script-Konsole beim Drucken, damit ich sehen kann, ob mein Code das erreicht, was ich möchte?
Der Code in .gs-Dateien eines Google Apps Script-Projekts wird auf dem Server und nicht im Webbrowser ausgeführt. Zum Protokollieren von Nachrichten wurde der Klassenlogger verwendet .
B) Ist es ein Problem mit dem Code?
Wie in der Fehlermeldung angegeben, war das Problem, dass console
es nicht definiert wurde, aber heutzutage wird derselbe Code einen anderen Fehler auslösen:
ReferenceError: "playerArray" ist nicht definiert. (Zeile 12, Datei "Code")
Dies liegt daran, dass das playerArray als lokale Variable definiert ist. Wenn Sie die Zeile aus der Funktion verschieben, wird dies behoben.
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
Jetzt, da der Code ohne Fehler ausgeführt wird, sollten wir uns stattdessen die Stackdriver-Protokollierung ansehen, um die Browserkonsole zu betrachten. Klicken Sie in der Benutzeroberfläche des Google Apps Script-Editors auf Ansicht> Stackdriver-Protokollierung .
Nachtrag
Im Jahr 2017 hat Google für alle Skripte die Stackdriver-Protokollierung veröffentlicht und die Klassenkonsole hinzugefügt. Wenn Sie also so etwas wie " console.log('Hello world!')
Stackdriver Logging Service" einfügen, wird das Protokoll nicht auf der Browserkonsole, sondern auf dem Stackdriver-Protokollierungsdienst der Google Cloud Platform angezeigt.
Aus den Versionshinweisen 2017 zu Google Apps Script
23. Juni 2017
Die Stackdriver-Protokollierung wurde aus dem Early Access entfernt. Alle Skripte haben jetzt Zugriff auf die Stackdriver-Protokollierung.
Über Protokollierung> Stackdriver-Protokollierung
Das folgende Beispiel zeigt, wie Sie mit dem Konsolendienst Informationen in Stackdriver protokollieren.
function measuringExecutionTime() {
console.info('Timing the %s function (%d arguments)', 'myFunction', 1);
var parameters = {
isValid: true,
content: 'some string',
timestamp: new Date()
};
console.log({message: 'Function Input', initialData: parameters});
var label = 'myFunction() time';
console.time(label);
try {
myFunction(parameters);
} catch (e) {
console.error('myFunction() yielded an error: ' + e);
}
console.timeEnd(label);
}