Google Apps Script:
Использование ассоциативных массивов
Как:
В Google Apps Script ассоциативные массивы (объекты) создаются и манипулируются с использованием фигурных скобок {}
, внутри которых определяются пары ключ-значение. Ключи являются уникальными идентификаторами, а значениями могут быть всё, начиная от строк и чисел и заканчивая более сложными объектами или функциями. Вот базовый пример:
function createAssociativeArray() {
var user = {
name: "John Doe",
age: 30,
email: "[email protected]"
};
// Доступ к значениям
Logger.log(user.name); // Выводит: John Doe
Logger.log(user["email"]); // Выводит: [email protected]
// Добавление новых пар ключ-значение
user.title = "Разработчик программного обеспечения";
user["country"] = "США";
Logger.log(user.title); // Выводит: Разработчик программного обеспечения
// Итерация по парам ключ-значение
for (var key in user) {
Logger.log(key + ': ' + user[key]);
}
}
Пример вывода для части итерации может выглядеть так:
name: John Doe
age: 30
email: [email protected]
title: Разработчик программного обеспечения
country: США
Обратите внимание, как можно использовать как точечную, так и скобочную нотацию для доступа и установки свойств. Скобочная нотация особенно полезна при работе с ключами, которые определяются динамически или включают символы, не допустимые в идентификаторах.
Глубокое погружение
Ассоциативные массивы в виде объектов были краеугольным камнем JavaScript и, по расширению, Google Apps Script, отражая механизм наследования на основе прототипов. В отличие от языков с традиционными ассоциативными массивами или словарями (например, dict в Python), объекты Google Apps Script предоставляют гибкий и мощный способ структурирования данных, извлекая выгоду из динамической природы JavaScript.
Однако важно отметить, что спецификация ECMAScript 2015 ввела объекты Map
и Set
, предлагающие более простое управление ассоциативными коллекциями с некоторыми преимуществами перед объектами, такими как сохранение порядка вставки и лучшая производительность для больших наборов данных. Хотя Google Apps Script также поддерживает их, выбор между использованием объектов или более новых структур Map
/Set
зависит от конкретных потребностей и соображений производительности. Для большинства задач ассоциативного массива традиционная реализация на основе объектов предоставляет знакомый и универсальный подход, но рассмотрение новых альтернатив рекомендуется по мере роста сложности вашего скрипта.