Javascript 代码打印数字,直到3时';它应该打印到5点
这个代码只打印数字到3,而它应该打印数字到5,怎么了Javascript 代码打印数字,直到3时';它应该打印到5点,javascript,arrays,Javascript,Arrays,这个代码只打印数字到3,而它应该打印数字到5,怎么了 function reversingwithout (array){ for(var i=0;i<array.length;i++){ var old = array.shift(array[i]) console.log(old); } } var hh = [1,2,3,4,5]; reversingwithout(hh); 函数反转不带(数组){ 对于(var i=0;i这是因为
function reversingwithout (array){
for(var i=0;i<array.length;i++){
var old = array.shift(array[i])
console.log(old);
}
}
var hh = [1,2,3,4,5];
reversingwithout(hh);
函数反转不带(数组){
对于(var i=0;i这是因为array.shift
操作正在改变循环中的数组
:
方法从数组中删除第一个元素并返回
此方法更改数组的长度
请尝试事先将数组长度保存在变量中:
var hh = [1,2,3,4,5];
var length = hh.length;
function reversingwithout (array){
for(var i=0;i<length;i++){
var old = array.shift()
console.log(old);
}
}
reversingwithout(hh);
var hh=[1,2,3,4,5];
变量长度=hh.length;
函数反转不带(数组){
对于(var i=0;i请参见循环条件在迭代中的演变:
i==0
,array.length==5
。确定
i==1
,array.length==4
。确定
i==2
,array.length==3
。好的
i==3
,array.length==2
。结束循环
我想你误解了shift
。如果你只想打印所有项目,只需执行以下操作
for(var i=0; i<array.length; ++i) console.log(array[i]);
(变量i=0;i)的
方法从数组中删除第一个元素并返回该元素。此方法更改数组的长度
每次检查循环保护时都会计算array.length
的值。调用array.shift()
时,循环体会从数组中删除一个元素,从而减少数组的长度。因此,在循环退出时,i==3
和array.length==2
您可以通过将array.length
的初始值存储在变量中并在循环保护中使用该变量来解决此问题
e、 g
var len=array.length;
对于(var i=0;i
Array.prototype.shift
不接受任何参数。提示:使用shift()
方法时正在从数组中删除元素。
var len = array.length;
for (var i = 0; i < len; i++) { ...