Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Dynamiczne nazwy tablicy
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Rewil
Czy da się zrobić coś takiego?

np.
  1. var zmienna = "kot";
  2. zmienna = new Array('siemka');
  3.  
  4. alert(kot[0]); // siemka


w php wiem że robi się to w ten sposób:
  1. ${'banan'.$zmienna}

Sephirus
Pewnie jest na to "konkretny" sposób smile.gif

Ja zawsze korzystam z własności "tablicowych" obiektów w JS.

JS to taki śmieszny jezyk w którym bez dodatkowych działań (załączania interfejsów jak w PHP) można odnosić się do własnośći/metod obiektu poprzez wywołanie tablicowe.

Jeśli tak to zapis :

[JAVASCRIPT] pobierz, plaintext
  1. obiekt.wlasnosc;
  2.  
  3. // i
  4.  
  5. obiekt['wlasnosc'];
  6.  
  7. //da ten sam rezultalt, tak samo jak:
  8.  
  9. window.alert('hello!');
  10.  
  11. // można zapisać jako:
  12.  
  13. window['alert']('hello');
[JAVASCRIPT] pobierz, plaintext


Wiem, że to nieco dziwne smile.gif ale tak jest. Teraz - jak to zastosować w twoim przypadku? Nic prostszego:

Wiedząc, że wszelkie zmienne "globalne" są rozumiane w JS jako własności i metody obiektu window to do zmiennej "a" możemy się odwołać na trzy sposoby:

[JAVASCRIPT] pobierz, plaintext
  1. alert(a); // jesteśmy w obiekcie window - więc możemy podać samą nazwę
  2. alert(window.a); // jako własność window
  3. alert(window['a']); // jako rekord z window
[JAVASCRIPT] pobierz, plaintext


zatem poniższy kod również zadziała:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. var nazwa_zmiennej = 'kotek';
  3.  
  4. window[nazwa_zmiennej] = 'To jest wartość zmiennej kotek!';
  5.  
  6. alert(kotek); // pokaże ALERT z wiadomością 'To jest wartość zmiennej kotek!'
  7.  
[JAVASCRIPT] pobierz, plaintext


HTH! wink.gif

Wesołych Świąt
kamil4u
Należy to zrobić dokładnie tak jak napisał ~Sephirus.

Ja ze swojej strony dodam tylko, że istnieje coś takiego jak eval, za pomocą, którego możesz to też osiągnąć. Tyle, że odradzam korzystanie z tego sposobu. Piszę o eval, bo wydaje się, że jesteś w miarę początkującym w JS, a wiele z nich zaczyna od tej instrukcji i później wynikają z tego problemy - dlatego jak będziesz pisał w przyszłości unikaj tego jak ognia. Eval is evil - poczytaj o tym, bo warto o tym widzieć.

Wesołych świat
Rewil
Właśnie użyłem Evala, strasznie jest nie ładny w zastosowaniu. Dzięki za te rady panowie. 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.