【问题标题】:How do I return a different column in a 2d array?如何在二维数组中返回不同的列?
【发布时间】:2016-09-27 20:12:41
【问题描述】:

我这里有这段代码:

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";
    }
  }
}

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

请帮忙。

【问题讨论】:

  • 尝试使用 data[i][8] == id
  • 你试过这个吗:for(var i = 0; i < data.length; i++){
  • 我已经尝试了所有三个 = 版本,没有更好的结果。我试过for(var i = 0; i < data.length; i++){,没有不同的结果。

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


【解决方案1】:

在尝试将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";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2021-12-24
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多