it-roy-ru.com

Определение массивов в Google Scripts

Я новичок в javascript и пытаюсь написать скрипт для электронной таблицы, который будет извлекать из нее разные вещи. У меня возникли проблемы с определением массива имен, которые будут в таблице. Ошибка говорит: «Отсутствует; перед оператором (строка 10)»

function readRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  //var values = rows.getValues();

  var Names = sheet.getRange("A2:A7");
  var Name = new Array(6);
  var Name_cell = Names.getCell(1, 1);
  var Name[0] = Name_cell.getValue();  //  <-- Here's the issue
  var Name_cell = Names.getCell(2, 1);
  var Name[1] = Name_cell.getValue();
  var Name_cell = Names.getCell(3, 1);
  var Name[2] = Name_cell.getValue();
  var Name_cell = Names.getCell(4, 1);
  var Name[3] = Name_cell.getValue();
  var Name_cell = Names.getCell(5, 1);
  var Name[4] = Name_cell.getValue();
  var Name_cell = Names.getCell(6, 1);
  var Name[5] = Name_cell.getValue();

  // ...
}
5
derekantrican

Попробуй это

function readRows() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  //var values = rows.getValues();

  var Names = sheet.getRange("A2:A7");
  var Name = [
    Names.getCell(1, 1).getValue(),
    Names.getCell(2, 1).getValue(),
    .....
    Names.getCell(5, 1).getValue()]

Вы можете определить массивы просто следующим образом, вместо выделения и последующего назначения.

var arr = [1,2,3,5]

Ваша первоначальная ошибка произошла из-за следующей строки и подобных ей 

var Name[0] = Name_cell.getValue(); 

Так как Name уже определен, и вы присваиваете значения его элементам, вы должны пропустить var, так что просто

Name[0] = Name_cell.getValue();

Совет для профессионалов: для большинства вопросов, которые, как и эта, не связаны напрямую со службами Google, лучше воспользоваться поиском Google в общем, как это сделать в javascript.

8
Karthik T

Я думаю, что, возможно, это потому, что вы объявляете переменную, которую вы уже объявили:

var Name = new Array(6);
//...
var Name[0] = Name_cell.getValue();  //  <-- Here's the issue: 'var'

Я думаю, что это должно быть так:

var Name = new Array(6);
//...
Name[0] = Name_cell.getValue();

Скажи мне, если это работает! ;)

1
mario

Это может помочь некоторым, кто борется, как я:

var data = myform.getRange("A:AA").getValues().pop();
var myvariable1 = data[4];
var myvariable2 = data[7];
1
Terry