Отвечая на вопросы OP
A) Что я не понимаю в том, как консоль скриптов Google Apps работает в отношении печати, чтобы я мог видеть, выполняет ли мой код то, что мне нужно?
Код в файлах .gs проекта скрипта Google Apps выполняется на сервере, а не в веб-браузере. Для записи сообщений в журнал использовалось средство ведения журнала классов .
Б) Это проблема с кодом?
Как сказано в сообщении об ошибке, проблема заключалась в том, что console
не было определено, но в настоящее время тот же код будет вызывать другую ошибку:
ReferenceError: playerArray не определен. (строка 12, файл «Код»)
Это потому, что playerArray определяется как локальная переменная. Эту проблему решит перенос строки из функции.
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
Теперь, когда код выполняется без ошибок, вместо того, чтобы смотреть в консоль браузера, мы должны взглянуть на Stackdriver Logging. В пользовательском интерфейсе редактора скриптов Google Apps нажмите « Просмотр»> «Ведение журнала Stackdriver» .
Дополнение
В 2017 году Google выпустил для всех скриптов Stackdriver Logging и добавил консоль классов, поэтому включение чего-то вроде console.log('Hello world!')
ошибки не вызовет, но журнал будет находиться в службе журналов Stackdriver Logging Service облачной платформы Google, а не в консоли браузера.
Из примечаний к выпуску Google Apps Script 2017
23 июня 2017 г.
Stackdriver Logging удален из раннего доступа. Все скрипты теперь имеют доступ к ведению журнала Stackdriver.
Из журнала> Ведение журнала Stackdriver
В следующем примере показано, как использовать консольную службу для регистрации информации в 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);
}