在Google脚本中定义数组

Defining arrays in Google Scripts

本文关键字:定义 数组 脚本 Google      更新时间:2023-09-26

我是一个javascript新手,正试图为电子表格编写一个脚本,从中提取各种内容。一开始,我在定义spreashet中的名称数组时遇到了问题。错误显示"缺少;在语句(第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();
  // ...
}

试试这个

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();

专业提示:对于大多数不直接涉及谷歌服务的问题,比如这个问题,你最好在谷歌上搜索javascript的通用方法。

我认为这可能是因为您正在声明一个已经声明的变量:

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();

告诉我它是否有效!;)

这可能会对一些像我一样挣扎的人有所帮助:

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