MooTools 1.2 - tablice w MooTools cz.1
07 lipca, 2008
Informacyjnie: Postanowiłem, że wpisy o MooTools 1.2 będą pojawiały się od poniedziałku do piątku. Tak żebym mógł odpocząć od pisania w weekendy ;)
W kolejnych dwóch częściach kursu skupimy się na tym co zyskuje obiekt Array dzięki MooTools. W tej części zajmiemy się metodami, które są zaimplementowane w JavaScript >= 1.6 (every, some, filter, map, indexOf), poczyścimy tablice na różne sposoby (metody clean, erase, empty), a także zainteresujemy się pojedynczymi elementami tablic (metody contains, getLast, getRandom, include).
Nowe możliwości obiektu Array w JavaScript 1.6
W tym miejscu muszę wspomnieć, że MooTools implementuje takie metody obiektu Array jak every, some, map, filter i indexOf, które zostały dodane w JavaScript 1.6, ale jak się pewnie domyślacie, nie są obsługiwane przez wszystkie przeglądarki. Nie będę ich w tym miejscu opisywał, natomiast odsyłam do niezwykle przydatnej witryny na Mozilla Developer Center poświęconej JavaScript, tam właśnie znajdziecie opisy wspomnianych metod:
Wszystkie powyższe strony są w języku polskim, zatem nie powinno być problemów z zapoznaniem się z tymi metodami :)
Czyścimy tablice z pustych elementów
Jeżeli chcemy się pozbyć z tablicy elementów typu null i undefined to stosujemy metodę clean:
[1, 2, null, 3, undefined, 4, 5].clean();
Powyższy kod zwróci tablicę postaci:
[1, 2, 3, 4, 5]
Kod tej metody bazuje na działaniu funkcji $defined, zatem wszystko co jest traktowane przez tą funkcję jako niezdefiniowane, zostanie usunięte z tablicy.
Usuwamy element tablicy
Usuwanie elementu z tablicy wymaga jedynie podania usuwanej wartości jako argument metody erase, przy czym należy pamiętać o tym, że jeżeli dana wartość występuję w tablicy wielokrotnie, to zostaną usunięte wszystkie jej wystąpienia w danej tablicy:
[1, 2, 3, 4, 5].erase(1);
Powyższy kod zwróci w rezultacie tablicę:
[2, 3, 4, 5]
Natomiast gdy zapiszemy następujący kod:
[1, 2, 3, 1, 5].erase(1);
To zgodnie z tym co wcześniej pisałem - zostaną usunięte wszystkie jedynki z tablicy dając w rezultacie tablicę:
[2, 3, 5]
Zacznijmy od nowa - czyli czyścimy tablicę
Czyszczenie tablicy jest bardzo proste - wystarczy użyci bezparametrycznej metody empty:
['a', 'b', 'c', 'd'].empty();
Powyższy kod zwróci pustą tablicę:
[]
Sprawdzamy czy dany element znajduje się w tablicy
Jeżeli zajdzie potrzeba sprawdzenia czy jakiś element występuje w danej tablicy, to mamy do dyspozycji metodę contains, która nie tylko pozwala określić jakiego elementu szukamy, ale także od którego miejsca.
Składnia wygląda następująco:
tablica.contains(szukanaWartosc, start);
Zmienna start określa od którego miejsca będzie szukany element:
[1, 2, 3, 4, 5, 6, 7].contains(3);
Powyższy kod zwróci oczywiście wartość true, ponieważ tablica zawiera element o wartości 3. Ale gdybyśmy zapisali tak:
[1, 2, 3, 4, 5, 6, 7].contains(3, 5);
To otrzymamy wartość false, ponieważ w rzeczywistości metoda contains przeszukuje tablicę:
[6, 7]
Ostatni i losowy element tablicy
Metody getLast i getRandom jak sama nazwa wskazuje, są metodami pozwalającymi uzyskać odpowiednio ostatni i losowy element danej tablicy. Poniżej dwa przykłady użycia tych metod:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].getLast();
Powyższy kod zwróci nam wartość 10.
Natomiast po wykonaniu kodu:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].getRandom();
Nie jesteśmy w stanie przewidzieć jaki element zostanie zwrócony (no chyba, że ktoś jest obeznany w sposobie generowania liczb pseudolosowych przez JavaScript ;).
Obie metody są po prostu skrótami pozwalającymi szybko wykonać podstawowe operacje pobierania elementów z tablicy.
Dodajemy NOWY element tablicy
Słowo NOWY w tytule tego paragrafu nie jest przypadkiem wyróżnione. Metoda include nie jest zwyczajnym użyciem metody push obiektu Array - element zostanie dodany do tablicy, ale pod warunkiem, że nie zawiera ona jeszcze takiego elementu:
['a', 'b', 'c'].include('d');
Powyższy kod zwróci nam tablicę postaci:
['a', 'b', 'c', 'd']
Gdybyśmy natomiast jeszcze raz chcieli dodać element 'd':
['a', 'b', 'c', 'd'].include('d');
To otrzymamy ciągle tą samą tablicę:
['a', 'b', 'c', 'd']
Ponieważ element 'd' już występuje w danej tablicy co uniemożliwia jego ponowne dodanie do niej.
Zatem w zależności od tego czy potrzebujemy tablicy z unikalnymi elementami, czy też tablic gdzie elementy mogą się powtarzać, stosujemy odpowiednio metody include i push.
Podsumowanie
Wiemy już sporo o tym jak MooTools rozszerza możliwości obiektu Array. W drugiej części poświęconej tablicom omówię powiązania pomiędzy obiektami i tablicami oraz metody grupowego dodawania elementów do tablic. Nie zabraknie też metod konwertujących tablice.
Komentarze do wpisu "MooTools 1.2 - tablice w MooTools cz.1":
Jeszcze nie ma żadnych komentarzy. Twój może być pierwszy.
Dodaj komentarz: