【问题标题】:Defining arrays in Google Scripts在 Google 脚本中定义数组
【发布时间】:2013-09-03 04:27:43
【问题描述】:

我是 javascript 新手,正在尝试为电子表格编写脚本,以从中提取各种内容。马上,我在定义将在电子表格中的名称数组时遇到了麻烦。错误提示“缺少 ; before statement (line 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();

  // ...
}

【问题讨论】:

  • 它的javascript,不是java

标签: javascript arrays google-apps-script


【解决方案1】:

试试这个

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 服务,您最好在谷歌上搜索一般的 javascript 方法。

【讨论】:

  • 谢谢!我试过谷歌搜索,但显然我没有使用正确的关键字
【解决方案2】:

我想可能是因为你声明了一个你已经声明过的变量:

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

告诉我它是否有效! ;)

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • getRange("A:AA") - 应该是 getRange("A1:AA1") 或任何行;-0
    猜你喜欢
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多