Объявление универсального двумерного массива c в скрипте приложений Google - PullRequest
0 голосов
/ 09 марта 2020

При вызове следующих строк кода в Google Apps Script возникает ошибка:

    var newSheetData = [[]]; newSheetData[1][1] = "1";

Однако при вызове этих строк кода ошибка не выдается:

        var newSheetData = [[]]; newSheetData[0][1] = "1";

Это означает, что в двумерном массиве определена только одна строка в соответствии с тем, как я ее определил.

Это единственный известный мне способ объявления двумерного массива в скрипте Google Apps.

Как я могу создать изменяемый 2d-массив универсальных c измерений (столько, сколько нужно) или даже заранее определить размер 2d-массива в скрипте Google Apps?

1 Ответ

2 голосов
/ 09 марта 2020

В newSheetData[1][1] = "1";, newSheetData [1] не определено. Так что нет доступа.

Вы можете инициализировать 2d-массивы, как показано ниже, перед использованием. Альтернативный метод ES6 может не работать в скриптах приложения Google.

const arr2dFill = (rows, cols, filler) => {
  const arr = new Array(rows);
  for (var i = 0; i < rows; i++) {
    arr[i] = [];
    for (var j = 0; j < cols; j++) {
      arr[i][j] = filler;
    }
  }
  return arr;
};

const arr2dFillEs6 = (rows, cols, filler) =>
  Array.from({ length: rows }, () => new Array(cols).fill(filler));

var arr1 = arr2dFill(3, 3, "1");
var arr2 = arr2dFillEs6(3, 3, "2");

arr1[1][1] = "3";
arr2[1][1] = "4";

console.log(arr1);
console.log(arr2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...