Objekt - problem s indexami pola – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Objekt - problem s indexami pola – JavaScript, AJAX, jQuery – Fórum – Programujte.comObjekt - problem s indexami pola – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
marioff0
Expert
11. 7. 2011   #1
-
0
-

Caute, uz druhy den sa trapim s nasledovnym problemom (priznam sa ze Jscript ovladam na urovni zaciatocnika):

Objekt:

api = {

ext: [], // obsahuje multidimenzionalne pole s datami s ktorymi aplikacia pracuje

 

extData: function(e) {

return this.ext[e]; // ak nie su este data k dispozicii, tak ich stiahne z DB, id z DB je zaroven index

// priklad: this.ext[idZdb]={..data...};

// ak nie je nastaveny parameter e, vrati cele pole

},



vytried: function(e) {

return e.sort(function(a,b).....vytriedi pole (napr. podla hodnoty v poli abecedne), indexi sa nezachovavaju, idu klasicky od 0....);

},

vypis: function(e) {

alert(this.ext[1].....); // OK: data sedia s DB 

dataNaTriedenie=this.extData(); // do premennej vlozi pole, zatial vsetko OK

vytriedeneData=this.vytried(dataNaTriedenie);

alert(this.ext[1].....); // Chyba - vrati obsah tak ako sa triedil teda 2 polozku...

}

};

v celej aplikacii pracuje s polom len metoda vypis, ktora si vyziada obsah databazy (index sedi s ID zaznamu v DB). Tento obsah vytriedi (samozrejme nemozem zachovat povodny index, tak pre ucely vypisu sa vytriedi od nuly, nezavisle na ID zaznamu). Lenze ak nasledne nato potrebujem nejake data z toho pola dat, podla ID v DB, tak sa mi vratia zotriedene data, teda index uz nesuhlasi z DB...

vobec tomu nerozumiem, preco sa to tak sprava, prosim o akukolvek radu ci pomoc.. dik

edit: dataNaTriedenie ma byt nad riadkom alert(this.ext[1]....)

nejak sa mi rozbija editor pri editovani

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
marioff0
Expert
11. 7. 2011   #2
-
0
-

Nemoze to byt tym ze

dataNaTriedenie=this.ext;

dataNaTriedenie nebude obsahovat "duplikat" dat, ale len referenciu? cize sort nevytriedi dataNaTriedenie ale v podstate sa vytriedi this.ext?

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
KIIV
~ Moderátor
+43
God of flame
11. 7. 2011   #3
-
0
-

#2 marioff
mozne to je... minimalne dalsi urovne nejspis budou reference

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
marioff0
Expert
11. 7. 2011   #4
-
0
-

pokial nahradim

return this.ext;

tymto:

duplikat=[];
   p=this.ext;
   for (k in p) {
    duplikat[k]=p[k];
   }
return duplikat;

tak je vsetko v poriadku, this.ext nie je ovplyvnene triedenim... takze sa jedna len o referenciu.. lepsie by to vsak bolo bez prechadzania pola :(

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
1321645679876456
~ Anonymní uživatel
27 příspěvků
24. 7. 2011   #5
-
+2
-
Zajímavé

Pole se dá jednoduše klonovat pomocí funkce slice():

var
    a = [1, 2, 3],
    b = a.slice(0);
Nahlásit jako SPAM
IP: 83.240.95.–
marioff0
Expert
26. 7. 2011   #6
-
0
-

#5 1321645679876456
velke diki

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý