gpt4 book ai didi

javascript - 我的反向数组代码有什么问题?

转载 作者:行者123 更新时间:2023-11-29 10:43:02 24 4
gpt4 key购买 nike

这是我的代码:

function reverseArray(array){
var newArray = [];
for (i = 0; i <= array.length + 1; i++)
newArray.unshift(array.shift());
return newArray;
};

我不明白为什么在 for 循环中条件不是 i < array.length 。例如,当数组有 3 个元素时,在我看来你需要遍历数组 3 次,将每个元素移动到新数组中,但出于某种原因在控制台上尝试时(例如 console.log(reverseArray(["a", "b", "c"])) ) ,我不得不将其更改为当前的 i <= array.length + 1; 以获得代码以提供正确的输出 ["c", "b", "a"] 。我不明白为什么,如果有人可以帮助解释为什么 i < array.length 不起作用,我将不胜感激。谢谢!

最佳答案

  1. 您的代码在 if 条件检查中出错,因为每次在 for 语句中检查条件,因此 array.lenght 是每次都变,条件不应该是array.length + 1,你可以试试下面的代码

    function reverseArray(array){
    var newArray = [];
    for (var i = 0,len=array.length; i < len; i++)
    newArray.unshift(array.shift());
    return newArray;
    };
  2. 我建议使用Array的reverse方法,但是如果你想制作数组的新副本,您可以使用 Array.slice(),试试这个:

    function reverseArray(array){
    var newArray=array.slice()
    newArray.reverse()
    return newArray
    }

关于javascript - 我的反向数组代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com