Функция сортировки на js
Подскажите пожалуйста, может знает кто. Как отсортировать массив(многомерный) вида:
var team = [ ["team1",300], ["team2",800], ["team3",900], ["team4",1000]](сортируем конечно же по числовому значению) Допустим, он уже отсортирован по возрастанию:
function new(a, b) {
if (a[1] > b[1])
return 1;
else if (a[1] < b[1])
return -1;
else
return 0;
}
team.sort(new) Можно ли сделать так чтобы индексы массива шли таким образом: если длина массива=16(ну на самом деле там 1024 только долго писать:D) то [0][15][1][14][2][13][3][12][4][11][5][10][6][9][7][8] Подскажите кто знает) Никак алгоритм не могу понять который будет задействован в цикле) Наведите на мысли хотя бы) |
я бы взял и создал второй массив и 2 функции запускающиеся поочереди
одна берет максимальное значение из массива, кладет его в новый массив и удаляет найденный элемент, вторая то-же самое, только с наименьшим элементом. Повторять пока в оригинальном массиве не кончатся элементы |
через split? не получается ) Пробовал массивы разделять,что-то всё равно неверно делаю)
|
При чем тут split?
|
Цитата:
|
Цитата:
И получалось 2 массива к примеру: один с индексами от 0 до 15 второй с индексами от 15 до 31 а потом вставлял поочерёдно как мне надо: 0,31,1,30 и т д а хочется циклом) |
Фу ты какой split,совсем мозги текут,splice конечно
|
а не проще по другому отсортировать массив, чем заморачиваться с таким выводом?
|
var list = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
var res = [],
first = true;
while ( list.length ) {
res.push( first ? list.shift() : list.pop() );
first = !first;
}
alert( res )
|
nikita.mmf,
Ага, это я и имел в виду. |
Спасибо,разобрался)
|
| Часовой пояс GMT +3, время: 18:18. |