qwermjk,
Жесть какая получилась.
Этот кусок можно упростить:
function (a, b) {
if(a[1] == 2 && b[1] == 2) return a[0] - b[0];
if(a[1] == 2 && b[1] == 3) return -1;
if(a[1] == 3 && b[1] == 2) return 1;
if(a[1] == 3 && b[1] == 3) return a[0] - b[0];
return 0;
}
Получится всего лишь:
function(a, b) {
if(a[1] == b[1]) return a[0] - b[0];
return a[1] - b[1];
}