数字の&アルファシーケンスを含む文字列のリストをソートしようとしています。最初に数字でソートしてから、アルファベットで、1a、2b、4、77c、743などを入力します。numAlpha文字列のリストを並べ替える
私は次のjavascriptで遊んでいました。壁。誰かが私にいくつかのポインタを与えることができますか?
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/
'a2'で望む結果は何ですか? –