Rispondere alle domande dell'OP
A) Cosa non capisco su come funziona la console di Google Apps Script rispetto alla stampa in modo da poter vedere se il mio codice sta ottenendo ciò che vorrei?
Il codice sui file .gs di un progetto Google Apps Script viene eseguito sul server anziché sul browser web. Il modo per registrare i messaggi era usare il Class Logger .
B) È un problema con il codice?
Come diceva il messaggio di errore, il problema era che console
non era stato definito ma al giorno d'oggi lo stesso codice genererà un altro errore:
ReferenceError: "playerArray" non è definito. (riga 12, file "Codice")
Questo perché playerArray è definito come variabile locale. Spostare la linea fuori dalla funzione risolverà questo problema.
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
Ora che il codice viene eseguito senza generare errori, invece di guardare la console del browser dovremmo esaminare Stackdriver Logging. Dall'interfaccia utente dell'editor di Google Apps Script, fai clic su Visualizza> Stackdriver Logging .
Addendum
Nel 2017 Google ha rilasciato a tutti gli script Stackdriver Logging e aggiunto la Class Console, quindi includere qualcosa di simile console.log('Hello world!')
non genererà un errore, ma il log sarà su Google Cloud Platform Stackdriver Logging Service invece che sulla console del browser.
Dalle note sulla versione di Google Apps Script 2017
23 giugno 2017
Stackdriver Logging è stato spostato dall'accesso anticipato. Tutti gli script ora hanno accesso alla registrazione di Stackdriver.
Da Registrazione> Registrazione Stackdriver
L'esempio seguente mostra come utilizzare il servizio della console per registrare le informazioni in Stackdriver.
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);
}