Помогите с сортировкой массива
Сортировка, последовательность:
цифры => русские буквы => английские буквы Пример: массив array("World of tans", "Империя добра", "4 Life") результат 4 Life Империя добра Word of tanks |
bolatik,
:-?
var arr = ["World of tans", "Империя добра", "4 Life", 1, 7, 81, 9];
alert(arr.sort(
function (a, b)
{ a = ''+a; b=''+b;
var len = Math.min(a.length,b.length), vol = {num : [3,/\d/], rus : [2,/[а-яё]/i], eng: [1,/[a-z]/i]},res = 0;
for (var i=0; i<len; i++) { var aa = 0, bb = 0;
for(var k in vol) if (vol[k][1].test(a[i])) aa = vol[k][0];
for(var k in vol) if (vol[k][1].test(b[i])) bb = vol[k][0];
res = bb - aa;
if (res) return res;
if (b[i] > a[i]) return 1;
if (b[i] < a[i]) return -1;
}
return a.length - b.length; }
));
|
Цитата:
if (b[i] > a[i]) return -1; if (b[i] < a[i]) return 1; } return a.length - b.length; |
Яростный Меч,
ок ))) добавил и исправил -- сортировка по убыванию при условии что все элементы массива строки. |
Спасибо! Огромное спасибо!
|
| Часовой пояс GMT +3, время: 14:56. |