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
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
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
Š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