Я собираюсь пойти дальше и предположить, что вы хотите сначала отсортировать по числовой части, выполнить числовую сортировку, а затем выполнить дополнительную лексографическую (строковую) сортировку по биту после запятой. Таким образом, значение типа «11, a» будет заканчиваться после «2, a» - если вы просто выполните сортировку по умолчанию «11, a» будет заканчиваться до «2, a». Итак:
var a = ["1,a","11,a","8,a","24,z","5,b","2,c","8,d","6,f"];
a.sort(function(a,b) {
var aparts = a.split(","),
bparts = b.split(","),
anum = +aparts[0], // convert first part to number
bnum = +bparts[0],
aletter = aparts[1],
bletter = bparts[1];
if (anum === bnum)
return aletter < bletter ? -1 : aletter === bletter ? 0 : -1;
else
return anum - bnum;
});
Результат:
["1,a", "2,c", "5,b", "6,f", "8,a", "8,d", "11,a", "24,z"]