2013-07-03 8 views
5

Wenn ich zwei Strings café und cafe sortiere, gibt es eine Best Practice, die besagt, welcher Buchstabe zuerst kommt? Ich habe localeCompare in Javascript getestet und Café kommt vor Cafe, aber ich verstehe nicht warum.Beim Sortieren von Strings sollte man vor e gehen

+0

Diese relevant sein können: http://stackoverflow.com/questions/6909126/javascript-sort-with-unicode – MatthewMartin

+0

scheint umgekehrt für mich zu sein -> http: // jsfiddle.net/xvBWa/ – adeneo

Antwort

4

Best Practice ist zuerst ohne Diakritika zu sortieren, dh. Café kommt vor Café.

localeCompare Werke die diakritischen Zeichen Strippen, so dass die Sortierreihenfolge die wirklichen Worte nicht reflektiert, da Café in Cafe gedreht wird

Sie mehr über localeCompare hier lesen:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

+0

Ich glaube nicht, dass ich verstehe, was Sie sagen. Der verwirrende Teil ist, dass die Sortierreihenfolge nicht die echten Wörter widerspiegelt. –

+0

'localeCompare' entfernt die diakritischen Zeichen, d. es verwandelt cafe in cafe - also wenn man es benutzt, sortiert man cafe gegen cafe –

+0

Ich testete diese zwei verschiedenen Möglichkeiten. Der erste Test war ["Café", "Cafe"] Der zweite war ["Cafe", "Café"]. Die Reihenfolge der Reihenfolge spielte keine Rolle, wenn das Café zuerst herauskam. Wenn es die diakritischen Zeichen entfernt, sollte die Reihenfolge nicht beibehalten werden? –

2

https://en.wikipedia.org/wiki/Collation

Wie Text sortiert wird, hängt davon ab, wie es gemacht wird.

Eine Tradition ist die "US-ASCII" -Darstellung von Zeichen, insbesondere in der C-Programmiersprache. Wenn Text nach ASCII sortiert wird, hängt die Reihenfolge nur vom numerischen Wert jedes Zeichens in der ASCII-Spezifikation ab. Manchmal wird dies das Gebietsschema "C" genannt.

Moderne Software sollte normalerweise ein geeignetes Gebietsschema verwenden, damit die Reihenfolge so erfolgt, wie die Leute es erwarten, unabhängig von der numerischen Darstellung der vom Computer verwendeten Zeichen.

Siehe https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare auch

Verwandte Themen