如何在二维数组中返回不同的列?

时间:2016-09-27 20:12:42

标签: javascript multidimensional-array google-apps-script google-sheets

我这里有这个代码:

function getName() {
  var id = SpreadsheetApp.getActiveSheet().getActiveCell().getValue();
  var data = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/spreadsheetIdHere/edit#gid=0')
    .getSheetByName("Paste Data")
    .getDataRange()
    .getValues();
  for (var i in data) {
    if (data[i][8] = id) {
      return data[i][5];
    } else {
      return "Student Not Found";
    }
  }
}

应该查看电子表格单元格中的用户输入,并将其与另一个电子表格中的行匹配。我正在尝试使它匹配row [i]并在匹配列[8]时返回列[5]。目前,它似乎返回第一行和它找到的id,但它们不在同一行。

请帮忙。

1 个答案:

答案 0 :(得分:0)

尝试将data[i][8]中的值与id进行比较而不是实际比较时,您将id值分配给data[i][8]。 更正版本如下:

function getName() {
  var id = SpreadsheetApp.getActiveSheet().getActiveCell().getValue();
  var data = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/spreadsheetIdHere/edit#gid=0')
                           .getSheetByName("Paste Data")
                           .getDataRange()
                           .getValues();
  for (var i = 0; i < data.length; i++) {
    if (data[i][8] == id) {
      return data[i][5];
    }
  }
  return "Student Not Found";
}