Respondendo às perguntas do OP
A) O que eu não entendo sobre como o console do Google Apps Script funciona com relação à impressão para que eu possa ver se meu código está funcionando como eu gostaria?
O código em arquivos .gs de um projeto do Google Apps Script executado no servidor em vez de no navegador da web. A maneira de registrar as mensagens era usar o Class Logger .
B) É um problema com o código?
Como dizia a mensagem de erro, o problema era que console
não estava definido, mas hoje em dia o mesmo código vai lançar outro erro:
ReferenceError: "playerArray" não está definido. (linha 12, arquivo "Código")
Isso ocorre porque o playerArray é definido como variável local. Mover a linha para fora da função resolverá isso.
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
Agora que o código é executado sem gerar erros, em vez de olhar o console do navegador, devemos olhar o Stackdriver Logging. Na IU do editor do Google Apps Script, clique em Exibir> Stackdriver Logging .
Termo aditivo
Em 2017, o Google lançou o Stackdriver Logging para todos os scripts e adicionou o Class Console, incluindo algo como console.log('Hello world!')
não gerará um erro, mas o log estará no Google Cloud Platform Stackdriver Logging Service em vez do console do navegador.
Das notas de lançamento do Google Apps Script 2017
23 de junho de 2017
O Stackdriver Logging foi removido do acesso antecipado. Todos os scripts agora têm acesso ao registro do Stackdriver.
Em Logging> Stackdriver Logging
O exemplo a seguir mostra como usar o serviço de console para registrar informações no 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);
}