Ich habe folgende Funktion:Warum ist das Sortieren der Browser auf folgende Weise
var sortString = function (a, b) {
a = a.toLowerCase();
b = b.toLowerCase();
if (a < b) return 1;
if (a > b) return -1;
return 0;
}
und ich habe folgende zwei Strings:
x = ["B1C3N_EUR_DFAK_ALL_3M_ALL","B1C3N_EUR_BPP_BCO_3M"];
Wenn ich die obige Funktion auf diesem Array laufen. Ich erwarte, dass "B1C3N_EUR_BPP_BCO_3M" den Index 0 hat, während der Browser es in umgekehrter Reihenfolge zurückgibt. Ich habe sowohl Chrome als auch IE überprüft. Wieso ist es so??
Muss ich "-" durch andere Werte ersetzen? Gibt es einen Weg, wie ich es ohne Ersatz tun kann?
Das muss ein Witz sein? – Teemu
Nein. Das ist kein Witz. Ich habe fast eine Stunde damit verbracht, herauszufinden, wie ich es sortieren könnte. Auch wenn ich "_" mit der Zeichenfolge ersetze, führt dies immer noch zu einer falschen Sortierung. Die Rückgabe von 1 und -1 war ein Fehler an meinem Ende beim Posten der Frage, aber selbst damit korrigierte ich das Problem –
Nein, du hast deinen Code durcheinander gebracht (vielleicht Caching?), [Was gut funktioniert] (https: //jsfiddle.net/gf42v861/), wenn die Stelle des Minusoperators gewechselt wird. – Teemu