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:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.