Недавно я решал несколько ката в 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 ); }
Вы можете найти больше информации о сортировке и функции сравнения здесь.
Это мой первый пост, надеюсь, вам будет интересно.