Почему этот код возвращает 3-мерный массив - PullRequest
0 голосов
/ 30 января 2019

Я хочу получить множественные значения, поэтому используйте getValues ​​, но он возвращает массив неожиданного измерения.В приведенном ниже коде sheet - это объект, который получил SpreadsheetApp.getActiveSpreadsheet (). GetSheetByName ("Example");

var rng = sheet.getRange(2,1,3);    
var rngVls = rng.getValues();

Logger.log(rng.getValue()); // log1
Logger.log(rngVls);         // log2
Logger.log(rngVls[0]);      // log3

Я ожидал результатов, как показано ниже. log2 - это то, что я хочу получить.

  • log1 = Bravo
  • log2 = [[Bravo], [Charlie], [Delta]]
  • log3 = Bravo

Но неожиданное измерение появляется, как показано ниже.Я не могу понять, почему.

  • log1 = [Браво, []]
  • log2 = [[[Браво], [Чарли], [Дельта]], []]
  • log3 = [[Bravo], []]

Пожалуйста, помогите мне, как я могу получить двумерный массив BCD ??


- добавил извинение -

уххххххххххххххххх.Я прочитал не «Журнал», а «Запуск стенограммы».Я получил то, что хочу, спасибо всем за доброту.я чувствую себя таким подавленным, давайте код.

1 Ответ

0 голосов
/ 31 января 2019

getValues() возвращает двумерный массив.Не полагайтесь на запись объекта в журнал для определения его атрибутов.Вместо этого используйте соответствующие методы JavaScript 1.6, такие как typeof, instanceof, JSON.stringify (объект) и т. Д.

Пример:

function logSomeThings(){
  var sheet = SpreadsheetApp.getActiveSheet();
  var rng = sheet.getRange(2,1,3);    
  var rngVls = rng.getValues();

  Logger.log('log1 %s', typeof rng.getValue()); 
  Logger.log('log2 %s', rngVls instanceof Array);
  Logger.log('log3 %s', rngVls[0] instanceof Array);
  Logger.log('log4 %s', typeof rngVls[0][0]); 
  Logger.log('log5 %s', typeof rngVls[0][0][0]); 
}

Результат

[19-01-31 10:32:24:187 CST] log1 number
[19-01-31 10:32:24:188 CST] log2 true
[19-01-31 10:32:24:189 CST] log3 true
[19-01-31 10:32:24:189 CST] log4 number
[19-01-31 10:32:24:190 CST] log5 undefined

Относительно JSON.stringify (rngVls);

Logger.log('log6 %s', JSON.stringify(rngVls)); 

регистрирует что-то вроде этого

[19-01-31 11:02:20:061 CST] log6 [[1],["#N/A"],[2]]

Примечания:

  1. getValue() возвращает top-левое значение указанного диапазона.
  2. Среда IDE скриптов Google Apps не имеет тех же возможностей, что и другие инструменты, такие как консоль инструментов разработчика Google Chrome.

Related

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...