Ich versuche, eine Liste von Zeichenfolgen zu sortieren, die eine numerische & Alpha-Sequenz enthalten. Ich möchte zuerst nach Nummer und dann nach Alpha wie 1a, 2b, 4, 77c, 743 usw. sortieren.Sortieren einer Liste von numAlpha Strings
Ich habe mit dem folgenden Javascript herum gespielt und ich bin nah dran, meinen Kopf vom Kopf zu schlagen Mauer. Kann mir jemand ein paar Hinweise geben?
var a1 = ["4a", "4c", "1a", "4b", "13c", "4a", "1a", "11c", "112c", "12", "9"];
var a2 = a1.sort(function(a, b) {
if (a.slice(-1) == "a" || a.slice(-1) == "b" || a.slice(-1) == "c") {
var charPart = [a.slice(-1), b],
numPart = [a.slice(0, a.length - 1), b];
if (b.slice(-1) == "a" || b.slice(-1) == "b" || b.slice(-1) == "a") {
var charPart = [a.slice(-1), b.slice(-1)],
numPart = [a.slice(0, a.length - 1), b.slice(0, b.length - 1)];
}
}
if (numPart[0] < numPart[1]) return -1;
else if (numPart[0] > numPart[1]) return 1;
else if (numPart[0] == numPart[1]) return -1;
else {
if (charPart[0] < charPart[1]) return -1;
else if (charPart[0] > charPart[1]) return 1
}
});
http://jsfiddle.net/8fRsD/307/
Was ist das gewünschte Ergebnis in 'a2'? –