Google Apps Script:
Korzystanie z tablic asocjacyjnych
Jak to zrobić:
W Google Apps Script tworzy się i manipuluje tablicami asocjacyjnymi (obiektami) za pomocą nawiasów klamrowych {}
, definiując w nich pary klucz-wartość. Klucze są unikalnymi identyfikatorami, a wartości mogą być czymś od ciągów znaków i liczb po bardziej złożone obiekty lub funkcje. Oto podstawowy przykład:
function createAssociativeArray() {
var user = {
name: "John Doe",
age: 30,
email: "[email protected]"
};
// Dostęp do wartości
Logger.log(user.name); // Wyświetla: John Doe
Logger.log(user["email"]); // Wyświetla: [email protected]
// Dodawanie nowych par klucz-wartość
user.title = "Software Developer";
user["country"] = "USA";
Logger.log(user.title); // Wyświetla: Software Developer
// Iteracja po parach klucz-wartość
for (var key in user) {
Logger.log(key + ': ' + user[key]);
}
}
Przykładowe wyjście dla części iteracyjnej może wyglądać tak:
name: John Doe
age: 30
email: [email protected]
title: Software Developer
country: USA
Zwróć uwagę, jak można używać zarówno notacji kropkowej, jak i nawiasowej do dostępu i ustawiania właściwości. Notacja nawiasowa jest szczególnie przydatna przy pracy z kluczami, które są dynamicznie określane lub zawierają znaki niedozwolone w identyfikatorach.
W głąb
Tablice asocjacyjne w formie obiektów stanowiły kamień węgielny JavaScriptu, a przez to Google Apps Script, odzwierciedlając jego mechanizm dziedziczenia oparty na prototypach. W przeciwieństwie do języków z tradycyjnymi tablicami asocjacyjnymi lub słownikami (np. dict w Pythonie), obiekty Google Apps Script zapewniają elastyczne i potężne środki strukturyzacji danych, korzystając z dynamicznej natury JavaScriptu.
Warto jednak zauważyć, że specyfikacja ECMAScript 2015 wprowadziła obiekty Map
i Set
, oferując bardziej bezpośrednie obsługiwanie kolekcji asocjacyjnych z pewnymi korzyściami w porównaniu z obiektami, takimi jak utrzymanie kolejności wstawiania i lepsza wydajność dla dużych zbiorów danych. Chociaż Google Apps Script również wspiera te struktury, wybór między używaniem obiektów a nowszymi strukturami Map
/Set
zależy od konkretnych potrzeb i rozważań dotyczących wydajności. Dla większości zadań związanych z tablicami asocjacyjnymi, tradycyjne implementacje oparte na obiektach zapewniają znajome i wszechstronne podejście, ale warto rozważyć nowsze alternatywy w miarę wzrostu złożoności skryptu.