> Preposilam dotaz... KAB > Vytvoril jsem si pole cisel a nyni pomoci metody sort() potrebuji > tyto cisla seradit. To sice funguje, ale cisla jsou prevedena na retezec a > razena lexikograficky. A to prave nechci. Vycetl jsem, ze se mam odkazat z > metody sort() na porovnavaci funkci. Referencni prirucka pravi, ze ona fce > 'musi byt odkazem na funkci o dvou parametrech, ktera musi vracet ciselnou > hodnotu a pole je setrideno s ohledem na hodnotu vracenou funkci.' > Takhle vypada cely kod (je obslehnuty z referencni prirucky DHTML) > > function porovnavaci_funkce(x,y){ > return x-y; > } > a=new Array(54,132,11) > b=a.sort(spravny zapis odkazu na porovnavaci funkci); > document.write(b); > > Neni mi ovsem zcela jasne, jak se spravne odvolat na tuto fci z > metody sort(), aniz bych neobdrzel chybove hlaseni... Terrior Jak proste, mily Watsone... :) b=a.sort(porovnavaci_funkce); Tot vse, proste pointer na tu komparacni fci. A neni nutne vyrabet dalsi kopii pole zapisem b=a.sort(porovnavaci_funkce); postaci to pole sesortovat 'samo v sobe', pokud ovsem to puvodni poradi nepotrebujes zachovat: a.sort(porovnavaci_funkce); Jeste pro uplnost dodam, ze ta komparacni fce musi vracet hodnotu ktera je mensi/rovna/vetsi nule podle vyhodnoceni vzajemneho vztahu parametru, cimz se da sorting vselijak ruzne ovlivnovat. Ale ja osobne nejsem temto user-hookum na externi fce pri sortingu prilis naklonen. Podle mych zkusenosti to pri vetsich objemech tridenych dat vzdy vede ke znatelnemu zpomaleni. Pro dany pripad bych si spise napsal nejakou vlastni fci pro numericky sort. pako Paco. ______________________________________________________________________ Reklama: Mapy Prahy, Brna a Cech najdete na http://www.mapy.cz
This archive was generated by hypermail 2.1.2 : 12. 07. 2002, 12:42 CEST