Wątek przeniesiony 2014-07-08 11:43 z Webmastering przez dzek69.

Tablica własnego typu w JavaScript

0

Witam

Chciałbym stworzyć tablicę elementów własnego typu.
tworzę przykładowo tablicę:

var tab = [];

tworzę typ:

var typ = {
   zm_a: 1,
   zm_b: 2
};

Ale jak to połączyć? Coś takiego:

var typ = {
   zm_a: 1,
   zm_b: 2
}[];

nie działa na przykład.

Ogólnie chciałbym zrobić tak żebym mógł się np odwoływać w ten sposób:

tab[2].zm_a;
tab[3].zm_b;

itd. Spodziewam się że to jest prymitywnie proste albo takie coś w ogóle nie istnieje ale mam nadzieje że ktoś coś doradzi :)

2

w tej chwili masz pusta tablice tab dodaj ten obiekt do tej tablicy uztwajac push np.

tab.push(typ);

wtedy po wywoalniu:

console.log(tab[0].zm_a) //tutaj wyswietli sie 1
console.log(tab[0].zm_b) //tutaj wyswietli sie 2

pamietaj ze wywoalnie wyglada tak:

NazwaTablicy[IndexElementuTablicy].NazwaWlasciwosci

stad jesli nie dodasz wystarczajace ilosci elementow to wywolywanie tab[2] i tab[3] wywali ci out of range. i pamietaj ze elementy tablicy numeruje sie od zera

0

jQuery to framework JavaScriptu. Ty piszesz w Javascripcie, nie w jQuery. Temat poprawiam i przenoszę do Newbie

0

@szalonyfacet działa, dzięki :)

0

Nie wiem czy można tak odkopywać wątki ale mam jeszcze jedno pytanie dotyczącego tego tematu.
Robię coś takiego:

var test = [];
var obiekt = { a:1, b:1 };
	
obiekt.a = 4;
obiekt.b = 2;
test.push(obiekt);

obiekt.a = 6;
obiekt.b = 7;
test.push(obiekt);
	
console.log(test);

No i właśnie, w domyśle tablica 'test' ma posiadać 2 pozycje: jedną 4,2 i drugą 6,7. Tutaj jednak jak wyświetlę tą tablicę logiem to okazuje się że obie pozycje mają wartości 6,7. Dlaczego tak się dzieje? Jeśli zamiast obiektów pushuje jakąś pojedynczą wartość na przykład to działa poprawnie.

1

chcialbys zeby tak bylo, a czemu tak nie jest to szerzej poczytaj czym sa typy referencyjne i wartosciowe(proste) w programowaniu. U ciebie obiekt jest typem referencyjnym,, czyli w skrocie tworzony jest obiekt w pamieci a ty bazujesz tylko na jego referencjach(odnosnikach) i za kazdym razem zmieniajac wartosc a i b zmieniasz wartosc tego samego a i b i dodajesz jeden i ten sam obiekt dwa razy. zreszta konsola powinna ci o tym powiedziec.

1 użytkowników online, w tym zalogowanych: 0, gości: 1