Javascript 反向数组,循环中的pop方法未弹出完成
注意:我已经看了几个小时的代码了,现在我开始质疑每个单词的拼写,或者怀疑我是否有诵读困难症——我知道这是一个简单的问题 我希望编写一个基本函数(不使用标准的JavaScriptJavascript 反向数组,循环中的pop方法未弹出完成,javascript,arrays,methods,Javascript,Arrays,Methods,注意:我已经看了几个小时的代码了,现在我开始质疑每个单词的拼写,或者怀疑我是否有诵读困难症——我知道这是一个简单的问题 我希望编写一个基本函数(不使用标准的JavaScriptreverse方法),该函数给定一个数组,以相反的顺序创建一个具有相同值的新数组 为什么这个函数写为“C”和“B”,而不是“A” 功能反转阵列(arr){ var reversedArr=[]; 对于(变量i=0;i=0;i--)。正如Martin所说,在代码中,您应该保存初始arr.length值并使用它。另外,pop没
reverse
方法),该函数给定一个数组,以相反的顺序创建一个具有相同值的新数组
为什么这个函数写为“C”和“B”,而不是“A”
功能反转阵列(arr){
var reversedArr=[];
对于(变量i=0;i
这应该记录[“C”、“B”、“A”],不管它是如何记录的→ [“C”,“B”]并且当我在函数中记录arr时,它保持在“A”上
我通过添加reversedArr.push(arr.pop(arr[0]))修复了这个问题
在for循环之后和修复问题的return语句之前,但是如果在i小于数组长度且数组仅包含“A”时写入for循环以继续,那么长度为1,i为0,它不也应该弹出“A”吗
我错过了什么 当您在数组中执行弹出操作时,它将永久性地从数组中取出该项并更改其长度。看 因此,在您的代码中,您应该使用
var popped = arr[i];
并按照以下步骤进行反向迭代:
for (var i = arr.length -1; i>=0 ; i--)
当你在数组上做一个pop时,它将永久性地从数组中取出该项并改变它的长度。看 因此,在您的代码中,您应该使用
var popped = arr[i];
并按照以下步骤进行反向迭代:
for (var i = arr.length -1; i>=0 ; i--)
试试这个
function reverseArray(arr) {
var reversedArr = [];
while (arr.length > 0) {
reversedArr.push(arr.pop())
}
return reversedArr;
}
这是怎么回事
pop
不接受参数,只删除最后一个元素,无需跟踪索引。继续这样做,直到数组为空 试试这个
function reverseArray(arr) {
var reversedArr = [];
while (arr.length > 0) {
reversedArr.push(arr.pop())
}
return reversedArr;
}
这是怎么回事
pop
不接受参数,只删除最后一个元素,无需跟踪索引。继续这样做,直到数组为空 当您调用pop(i)
时,您正在从数组中删除一个元素,因此,长度变为2。您可以使用arr[i]
复制值,从arr.length-1
开始复制到0。您也可以将for
循环更改为从arr.length
到0
,然后在循环时推动元素for(var i=arr.length-1;i>=0;i--)
。正如Martin所说,在代码中,您应该保存初始arr.length值并使用它。另外,pop
没有任何参数调用pop(i)
时,从数组中删除一个元素,因此长度变为2。您可以使用arr[i]
复制值,从arr.length-1
开始复制到0。您也可以将for
循环更改为从arr.length
到0
,然后在循环时推动元素for(var i=arr.length-1;i>=0;i--)
。正如Martin所说,在代码中,您应该保存初始arr.length值并使用它。还有,pop
没有任何论据谢谢!回答问题并在我所问的上下文中提供修复!非常感谢。回答问题并在我所问的上下文中提供修复!