Autor Zpráva
Pavel978
Profil *
Dobrý den,
mám pole hodnot, které bych potřeboval seřadit dle české abecedy, metoda sort (bez parametru) bohužel nefunguje. Očekávám, že existuje nějaká možnost pomocí callbacku avšak sám to dohromady nedám. Mohl by mi s tímto problémem prosím někdo pomoci.

Předem děkuji za jakoukoli reakci.
Chamurappi
Profil
Reaguji na Pavla978:
Viz Třídění pole dle české abecedy.
Pavel978
Profil *
Teď vypadám jako ignorant, ale já jsem skutečně zkoušel hledat...zalíbilo se mi toto řešení
data.sort(function(a, b) { return a[0].localeCompare(b[0]); });
ale jako začátečníkovi mi dělá trochu problém...jakým způsobem to prosím funguje, co je to 'a' a 'b'? Jinak mi totiž vypíše že 0 má hodnotu null nebo není objekt.
Pavel978
Profil *
Aha řešení je jednoduché...tak děkuji moc :-)
Chamurappi
Profil
Reaguji na Pavla978:
V odkázaném vlákně se netřídí přímo pole řetězců, ale pole polí, které mají na prvním místě řetězec. Proto jsou tam a[0] a b[0].
Normální třídění pole by vypadalo takto:
data.sort(function(a, b) { return a.localeCompare(b); });
… nebo (raději) s použitím losovy funkce, která je tam uvedená níže:
data.sort(function(a, b) { return localeCompare(a, b); });
Pavel978
Profil *
Výborně, zas jsem o kousek chytřejší, ještě jednou díky moc!

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: