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 = "Software Developer";
user["country"] = "USA";
Logger.log(user.title); // Виводить: Software Developer
// Ітерація по парах ключ-значення
for (var key in user) {
Logger.log(key + ': ' + user[key]);
}
}
Зразок виводу для частини ітерації може виглядати так:
name: John Doe
age: 30
email: [email protected]
title: Software Developer
country: USA
Зауважте, як ви можете використовувати як нотацію через крапку, так і нотацію в дужках для доступу та встановлення властивостей. Нотація в дужках особливо корисна при роботі з ключами, які динамічно визначаються або включають символи, неприпустимі в ідентифікаторах.
Поглиблений огляд
Асоціативні масиви у формі об’єктів були кутовим каменем JavaScript, а отже і Google Apps Script, відображаючи його механізм спадковості на основі прототипу. На відміну від мов з традиційними асоціативними масивами або словниками (наприклад, dict в Python), об’єкти Google Apps Script надають гнучкий і потужний засіб структурування даних, виходячи з динамічної природи JavaScript.
Однак важливо зауважити, що специфікація ECMAScript 2015 ввела об’єкти Map
та Set
, пропонуючи більш пряме управління асоціативними колекціями з певними перевагами над об’єктами, такими як підтримка порядку вставки та краща продуктивність для великих наборів даних. Хоча Google Apps Script також підтримує ці структури, вибір між використанням об’єктів або новіших структур Map
/Set
залежить від конкретних потреб та міркувань щодо продуктивності. Для більшості завдань із асоціативними масивами традиційні реалізації на основі об’єктів надають знайомий і універсальний підхід, але розгляд нових альтернатив є бажаним, коли складність вашого скрипта зростає.