Топ 5 часто используемых методов для работы с массивами в гугл скриптах

При работе с массивами часто возникает необходимость в разнообразных операциях для обработки данных. В этой статье, я поделюсь пятью наиболее полезными и часто используемыми методами, которые помогут вам легче и более эффективно работать с массивами. Эти методы могут быть особенно полезными при фильтрации, сортировке, преобразовании данных и многих других задачах.

Допустим, в гугл таблице есть телефонный справочник сотрудников с внутренними номерами:

Для того, чтобы получить справочник в массив гугл скриптов, запускаю следующий код:

function getInitialArray() {
  const ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ARRAY METHODS')
  return ws.getDataRange().getValues()
}

Скрипт вернет следующий результат в виде массива массивов:

1. Shift() — удаляет первый элемент массива или как избавиться от заголовков

Метод shift() удаляет первый элемент из массива и возвращает его значение. Так же он изменяет длину массива — до выполнения метода и после.

function shiftArray() {
  const initialArray = getInitialArray()
  const shiftedElem = initialArray.shift()
  console.log(shiftedElem)
  console.log(initialArray)
}

С результатом:

2. Splice() — когда надо удалить элементы, начиная с определенной позиции

Допустим в нашем списке есть лишний контакт — [ 3, ‘Александра’, 250 ] и его надо удалить, не меняя весь остальной массив:

function spliceArray() {
  const initialArray = getInitialArray()
  console.log(initialArray)
  initialArray.splice(3, 1)
  console.log(initialArray)
}

initialArray.splice(3, 1) удаляет 1 элемент с третьей позиции:

3. Filter() — когда надо собрать новый массив исходя из заданных условий

Метод filter() создаёт новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции. Чтобы было проще — из функции фильтр вызывается другая функция, результат которой является основой для фильтра:

К примеру, мне нужны все контакты, телефоны которых «больше» 600. Классическая запись будет следующей:

function filteredArray() {
  const initialArray = getInitialArray()
  console.log(initialArray)
  const filteredArr = initialArray.filter(filterCondition)
  console.log(filteredArr)
}
function filterCondition(row) {
  return row[2] > 600
}

с результатом:

но можно сильно упростить код, благодаря стрелочной функции:

function filteredArray() {
  const initialArray = getInitialArray()
  console.log(initialArray)
  const filteredArr = initialArray.filter(row => row[2] > 600)
  console.log(filteredArr)
}

при этом, условий может быть несколько, например

const filteredArr = initialArray.filter(row => row[2] > 600 && row[0] > 14) вернет:

4. Sort() — когда надо упорядочить массив

например, по возрастанию номеров телефонов:

function sortArray() {
  const initialArray = getInitialArray()
  initialArray.sort((a, b) => a[2] - b[2])
  console.log(initialArray)
}

c результатом:

5. Map() — возвращает новый массив с необходимыми полями

К примеру, мне нужны те же данные, но без первого столбца с порядковыми номерами. С этой задачей проще всего справиться следующим образом:

function mapArray() {
  const initialArray = getInitialArray()
  const newArray = initialArray.map(row => [row[1], row[2]])
  console.log(newArray)
}

с результатом:

Небольшой бонус для дочитавших до конца 🙂

Можно делать методы «цепочкой».

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

const newArray = initialArray.map(row => [row[1], row[2]]).sort((a, b) => a[1] - b[1])

позволит создать и сразу выстроить массив «по возрастанию»:


Ваше мнение важно и может улучшить блог

Я хочу услышать ваше мнение и ваши идеи о том, как сделать этот сайт еще лучше. Примите участие в опросе, чтобы поделиться вашими пожеланиями, предложениями и замечаниями. Пройдите опрос сейчас и помогите сделать этот сайт более полезным для вас!

Добавить комментарий