Недавно я решал несколько ката в codewars.com, так что нашел интересную задачу. Вам нужно создать альтернативный метод для реверсирования массива. Очевидно, вы не можете использовать reverse().

Вот 3 способа, которые вы можете использовать для реализации собственного обратного метода.

Императив

Самый простой способ. Нам нужно перемещаться между массивами от последнего к первому элементу, помещая элемент в новый массив.

function reverse(arr) {
    const reversed = [];
    for(let i = arr.length -1; i >= 0; i--) {
        reversed.push(arr[i]);
    }
    return reversed;
}

Рекурсия

Способ необычный, но действенный. Нам нужно вернуть функцию над срезом массива из второго элемента и объединить первый. Наша рекурсия остановится, когда массив будет пуст.

function reverse(arr) {
    if(arr.length < 1) return [];
    return reverse(arr.slice(1)).concat(arr[0]);
}

Сортировать

Определенно, это самый умный способ его применения. Вам нужно отсортировать массив, возвращая -1 в его функции сравнения.

function reverse(arr) {
    return arr.sort( _ => -1 );
}

Вы можете найти больше информации о сортировке и функции сравнения здесь.

Это мой первый пост, надеюсь, вам будет интересно.