Блог

Создание массивов Apps Script. Добавление, Удаление и Изменение Элементов Массивов

Массивы в Apps Script можно создать несколькими способами:

  1. Декларировать в строке кода имя массива и приравнять его к последовательности значений, взятых в квадратные скобки;
  2. Считать данные с листа Google SpreadSheet помощью метода .getValues() ;
  3. Разделив строку с помощью метода .split([delimiter]) (обычно в качестве разделителя delimiter используется пробел;
  4. Пп 3, когда в качестве строки используется слово, а в качестве разделите - пустая строка.

function createArray() {
  
// ======== HOW TO CREATE ARRAY? ===========

  // 1.) Write
  var arr = [1, 2, 3];
  
  // 2.) Read from spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var arr1 = ss.getDataRange().getValues(); // [[1.0, 2.0, 3.0]]
  
  // 3.) Using string splitting
  var string = 'I am learning Google Spreadsheet';
  var arr2 = string.split(' '); // [I, am, learning, Google, Spreadsheet]
  
  // 4.) Using string splitting
  var arr3 = 'word'.split(''); // [w, o, r, d]
  
}

Добавлять элементы в массив можно разными способами:

  1. Самый простой из них - приравнять определённый элемент массива (с помощью указания его индекса в квадратных скобках) к нужному значению.

  2. Если максимальное значение индекса будет превышено более, чем на единицу, то всем элементы между старым и новым максимальными индексами автоматически присваивается значение null.

  3. Добавление элементов в конец массива с помощью метода .push(value) ;
  4. Добавление элементов в начало массива с помощью метода .unshift(value) ;
  5. Удаление элемента с максимальны индексом .pop() ;

  6. Значение удаляемого элемнта можно при этом присвоить новой переменной.

  7. Удаление элемента с нулевым индексом .shift() ;
  8. Адресное изменение элементов массива с помощью метода .splice(index, hawManyDelete, whatInsert) ;

  9. где:
    • index - номер индекса, с которого будет производиться вставка / удаление индексов;
    • hawManyDelete - число элементов, которые необходимо удалить. Если hawManyDelete = 0, удаления не будет;
    • whatInsert - значене элемента (элементов), который (которые) будет вставлены, начиная в индекса номер index .
  10. Метод изменения порядка индексов в массиве с прямого на обратный и наоборот.reverse() ;
  11. Метод сортировки элементов массива .sort() . Без параметра в виде функции используется крайне редко из-за своей ограниченности: сортирует только строки в юникоде по возрастанию.

function addDeleteItems() {

// ================ ADD ITEMS =======================

  // 1.) [index]
  var arr4 = [1, 2, 3];
  arr4[3] = 4; // [1.0, 2.0, 3.0, 4.0]
  arr4[5] = 6; // [1.0, 2.0, 3.0, 4.0, null, 6.0]
  arr4[-1] = 0; // [1.0, 2.0, 3.0, 4.0, null, 6.0]
  
  // 2.) .push(value)
  arr4.push(7); //  [1.0, 2.0, 3.0, 4.0, null, 6.0, 7.0]
  
  // 3.) .unshift(value)
  arr4.unshift(0) // [0.0, 1.0, 2.0, 3.0, 4.0, null, 6.0, 7.0]
  
// ================= DEL ITEMS ======================

  // 4.) .pop()
  var x = arr4.pop(); // [0.0, 1.0, 2.0, 3.0, 4.0, null, 6.0]
  
  // 5.) .shift()
  var x = arr4.shift(); // [1.0, 2.0, 3.0, 4.0, null, 6.0]
  
// ===== ADD (INSERT), DELETE, CAHGE =================

  // 6.) .splice(index, hawManyDelete, whatInsert)
  arr4.splice(4, 0, 5); // [1.0, 2.0, 3.0, 4.0, 5.0, null, 6.0]
  arr4.splice(5, 1);    // [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]

// ============ CHANGE ORDER =========================
  // 7.) .reverse()
  arr4.reverse(); // [6.0, 5.0, 4.0, 3.0, 2.0, 1.0]
  
  // 8.) .sort()
  arr4 = [6.0, 5.0, 404.0, 41.0, 4.0, 3.0, 2.0, 1.0];
  arr4.sort();
}

Больше информации и примеров вы сможете найти в этом видео: