Вывод массива в обратном порядке

Рейтинг: 0Ответов: 1Опубликовано: 02.05.2015
function yearsBirthDayList() {
 var data = new Array();

 for(i = 1905; i < 1998; i++) {
  data.push([i, i]);
 }

 return data;
}

Массив выводится в порядке:

[[1905,1905]-[1997,1997]]

Как сделать чтобы он выводился в обратном порядке?

[[1997,1997]-[1905,1905]]

Ответы

▲ 4Принят

Первое, что приходит на ум.

var source = [1, 2, 3],
    inverse;

inverse = source.reduce(function (carrier, element) {
    carrier.unshift(element);
    return carrier;
}, []);

// inverse = [3, 2, 1]

upd второе, что приходит на ум:

var source = [1, 2, 3];
source.reverse();

обратите внимание, что в этом случае исходный массив будет модифицирован (в то время как в первом примере создается второй массив). Чтобы создать новый, можно воспользоваться slice с первого же элемента:

var source = [1, 2, 3],
    inverse;

inverse = source.slice(0).reverse();