Autor | Zpráva | ||
---|---|---|---|
TomasJ Profil |
#1 · Zasláno: 29. 9. 2010, 21:12:17
Dobrý večer všem.
Mám takový problém s funkcí sort(); Když použiji v nějaké vlastní funkci, funkci sort();, jak ji můžu zase vrátit do původního stavu? Mám kód takhle: <html> <head> <script type="text/javascript"> var a = new Array("jablka","višně","třešně","hrušky","111","169","215",".jpg"); function Sorted(input) { input.sort(); var b=0; for(c=0;c<input.length;c++){if(!b){b=(c+1)+". "+input[c];}else{b+="<br>"+(c+1)+". "+input[c];}} insert(b,"info"); } function UnSorted(input) { var b; for(c=0;c<input.length;c++){if(!b){b=(c+1)+". "+input[c];}else{b+="<br>"+(c+1)+". "+input[c];}} insert(b,"info_orig"); } function insert(text,cilove_id) { var elem = document.getElementById(cilove_id); if(!elem){document.write("Zadané ID ""+cilove_id+"" neexistuje v tomto HTML souboru.<br>Pro vytvoření napiš do <body> </body> tento tag:<br><span id=""+cilove_id+""></span>");} else{elem.innerHTML=text;} } </script> <title>Sort();</title> </head> <body onload="UnSorted(a);Sorted(a);"> <h5>Seřazený:</h5> <span id="info"></span><br> <h5>Originál:</h5> <span id="info_orig"></span> </body> </html> I když používám funkci sort(); až ve vlastní funkci, stejně seřadí Array i pro další použití... Všimněte si, že mám v události onload (v body) napřed UnSorted a pak Sorted. Když je v obráceném pořadí zapsáno, tedy napřed Sorted a pak UnSorted, tak vyjde obojí stejně. Nevíte o něčem, co dokáže navrátit původní seřazení "od výrobce", abych mohl klidně použít UnSorted až za Sorted? Tedy aby UnSorted opravdu zobrazilo originální seřazení, i když už nějaká funkce obsah seřadila? |
||
jksdf Profil |
#2 · Zasláno: 29. 9. 2010, 21:33:46
uložiť si to do druhého poľa - to pôvodné
|
||
TomasJ Profil |
#3 · Zasláno: 29. 9. 2010, 21:52:03 · Upravil/a: TomasJ
Máte na mysli
var a = new Array(...); var a_orig = a; ? EDIT: Chápu to tedy tak, že žádná taková funkce neexistuje. Je to tak? |
||
Witiko Profil |
#4 · Zasláno: 29. 9. 2010, 22:10:59 · Upravil/a: Witiko
Takhle se neukládá, takhle se do obou proměnných uloží jeden odkaz na stejný objekt pole. Takhle se kopírují pole:
var pole1 = [...]; pole2 = pole1.slice(0); |
||
TomasJ Profil |
#5 · Zasláno: 29. 9. 2010, 22:21:29
Děkuji za radu.
|
||
Časová prodleva: 14 let
|
0