Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Wyświetlanie w pętli wartości obiektu / podobiektu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Sztef89
mam problem z napisaniem funkcji która będzie wyświetlała wszystkie dane znajdujące się w obiekcie, dane przekazuje do skryptu w formie JSON, a skrypt automatycznie zamienia je na obiekty (funkcja z jQuery).

Przykładowe dane jakie wysyłam:
  1. {"gatunek":{"6":"dramat","13":"komedia"},"kraj":{"53":"USA"}}


jakby te dane były w formie tablicy to wystarczyłoby funkcją "for" lub "for in" wyświetlić ale chciałbym pominąć zamienianie obiektów na tablice.
Chciałbym z tych danych wyciągnąć, np. dla obiektu gatunek odpowiednio id i wartość.

oto wyimaginowana funkcja która by była odpowiedzią na ten problem:

  1. foreach( dane.gatunek as a:b ){
  2. alert( a+' - '+b );
  3. }


--EDIT--

Jak zrobię tak jak poniżej to wyświetli kolejno "dramat" a potem "komedia", ale jak odczytać jeszcze ID ?

  1. for(i in dane.gatunek){
  2. alert(dane.gatunek[i]);
  3. }



--EDIT2--

Haha udało mi się samemu rozwiązać problem, ale jakoś przez 2h nic nie mogłem sam wymyślić zanim napisałem ten temat smile.gif
Petla for.. in.. sama pobiera reprezentującą zmienną i wartość do niej więc w przypadku powyższego przykładu pod zmienną "i" jest odpowiednia wartość "6" i "13".
I po problemie, podobają mi się te obiekty w JS smile.gif
kamil4u
Nie zapomnij o hasOwnProperty( https://developer.mozilla.org/en/JavaScript.../HasOwnProperty ). Warto dodać odpowiedni warunek, żeby później nie mieć problemów.
Sztef89
Cytat(kamil4u @ 24.03.2012, 22:59:02 ) *
Nie zapomnij o hasOwnProperty( https://developer.mozilla.org/en/JavaScript.../HasOwnProperty ). Warto dodać odpowiedni warunek, żeby później nie mieć problemów.


to takie zabezpieczenie przed niepoprawnymi danymi ?

Własnie zastanawiałem się nad tym... gdy danych o gatunku nie będzie i co wtedy zrobi pętla for in... błąd ? hymm
kamil4u
Cytat
to takie zabezpieczenie przed niepoprawnymi danymi ?

Poczytaj to lepiej zapamiętasz smile.gif Generalnie to daje pewność przy pętli for in, że właściwość "została wpisana ręcznie", a nie dodana przez sam język. Poczytaj, popatrz na przykłady a zrozumiesz lepiej.

Cytat
Własnie zastanawiałem się nad tym... gdy danych o gatunku nie będzie i co wtedy zrobi pętla for in... błąd ? hymm

Sprawdź sam i nam napisz. Samodzielność w tym fachu bardzo się przydaje, a i daje sporo satysfakcji, że "sam to zrobiłeś" smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.