Почему мой цикл for возвращает только первый элемент? - PullRequest
0 голосов
/ 28 февраля 2019

Я новичок в Google Scripts и пишу один для экспорта данных из Google Sheets в 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 голосов
/ 28 февраля 2019

Это потому, что внутри вашего внутреннего цикла 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>;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...