为什么我的for循环仅返回第一个元素?

时间:2019-02-28 19:20:03

标签: google-apps-script

我是Google脚本的新手,我正在编写一个脚本将数据从Google表格导出到Slack。我成功设置了Slack导出代码,但是无论我尝试什么,我的公式都只会抓住第一个元素。

function reporting() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('REPORTING')
    var startRow = 1; // First row of data to process
    var numRows = 52; // Number of rows to process
    // Fetch the range of cells A1:B52
    var dataRange = sheet.getRange(startRow, 1, numRows, 1);
    // Fetch values for each row in the Range.
    var data = dataRange.getValues();
    var i, j;
    for (i = 0; i < numRows; i++) {
        for (j = 0; j < numRows; j++) {
            return data[i][j];
        }
    }
}

有人知道为什么它不返回整个数组吗?

1 个答案:

答案 0 :(得分:1)

这是因为您的内部for循环块中包含return语句。 您不应该返回,因为这只会获取您的第一个元素,然后退出该函数。 它应该如下所示:

function reporting() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('REPORTING')
  var startRow = 1; // First row of data to process
  var numRows = 52; // Number of rows to process
  // Fetch the range of cells A1:B52
  var dataRange = sheet.getRange(startRow, 1, numRows, 1);
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  var i, j;
  for (i = 0; i < numRows; i++) {
    for (j = 0; j < numRows; j++) {
        // do something with data[i][j], call a write/export function
    }
   }
   //return statement should be here.
   return <result>;
}