Zichen Ma Zichen Ma - 11 days ago 5
Javascript Question

javascript reverse an array without using reverse()

I want to reverse an array without using reverse() function like this:

function reverse(array){
var output = [];
for (var i = 0; i<= array.length; i++){
output.push(array.pop());
}

return output;
}

console.log(reverse([1,2,3,4,5,6,7]));


However, the it shows [7, 6, 5, 4] Can someone tell me, why my reverse function is wrong? Thanks in advance!

Answer

array.pop() removes the popped element from the array, reducing its size by one. Once you're at i === 4, your break condition no longer evaluates to true and the loop ends.


One possible solution:

function reverse(array) {
  var output = [];
  while (array.length) {
    output.push(array.pop());
  }

  return output;
}

console.log(reverse([1, 2, 3, 4, 5, 6, 7]));

Comments