javascript 在不使用 reverse() 的情况下反转数组

标签 javascript

我想在不使用这样的 reverse() 函数的情况下反转数组:

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]));

但是,它显示 [7, 6, 5, 4] 有人可以告诉我,为什么我的反向功能是错误的?提前致谢!

最佳答案

array.pop()从数组中删除弹出的元素,将其大小减一。 一旦你在 i === 4 ,您的中断条件不再计算为 true循环结束。

一种可能的解决方案:

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

  return output;
}

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

关于javascript 在不使用 reverse() 的情况下反转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751207/

相关文章:

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - Highstocks - 使用日期时间轴时在列之间放置一条线

javascript - 向延迟的动态元素添加过渡?

javascript - 对 Bootstrap 下拉项选择执行操作

javascript - 如何判断对象是使用 'Object.create' 还是使用文字语法/'new' 关键字创建的

javascript - 如何在屏幕尺寸上将 html 文件更改为另一个 html 文件?

javascript - 通过 AJAX 发送时向 FormData 添加信息

javascript - Plotly - 根据值隐藏悬停工具提示上的数据?

javascript - 在 Knockout 中使用集合,迭代的最佳方法是什么?

javascript - 搜索数组并制作找到和未找到单词的编号列表,Javascript