const reverseIterative = (arr) => { const result = []; for (let i = arr.length - 1; i >= 0; i--) { result.push(arr[i]); } return result; }; const reverseRec = (arr) => arr.length === 0 ? [] : arr.slice(-1).concat(reverseRec(arr.slice(0, -1))); // reverseRec([1, 2, 3]); // [3] + reverseRec([1, 2]) // [3] + ([2] + reverseRec([1])) // [3] + ([2] + ([1] + reverseRec([]))) // [3] + ([2] + ([1] + [])) // [3] + ([2] + [1]) // [3] + [2, 1] // [3, 2, 1]