Javascript 使用js数组作为堆栈
我认为它应该发出4次警报,但为什么它只发出2次警报呢。有人能给我解释一下吗Javascript 使用js数组作为堆栈,javascript,Javascript,我认为它应该发出4次警报,但为什么它只发出2次警报呢。有人能给我解释一下吗 var arr = new Array; arr.push("1"); arr.push("2"); arr.push("3"); arr.push("4"); for(var i=0;i<arr.length;i++){ alert(arr.pop()); } var-arr=新数组; arr.push(“1”); arr.push(“2”); arr.p
var arr = new Array;
arr.push("1");
arr.push("2");
arr.push("3");
arr.push("4");
for(var i=0;i<arr.length;i++){
alert(arr.pop());
}
var-arr=新数组;
arr.push(“1”);
arr.push(“2”);
arr.push(“3”);
arr.push(“4”);
对于(var i=0;i将for
循环更改为,而循环:
while(arr.length) {
alert(arr.pop());
}
问题是您从数组中删除了元素,因此length
减小,从而提前结束for
循环。在for
循环的两次迭代后,arr.length
为2,i
也为2,因此循环结束
这是上面的一个例子。您的代码正在检查每个循环的长度,所以第二个循环中的数组长度必须是2(2 poped),但变量i是2,所以它们将退出循环
尝试将用于
或您可以使用
var arr = new Array;
arr.push("1");
arr.push("2");
arr.push("3");
arr.push("4");
var length = arr.length;
for(var i=0;i<length;i++){
alert(arr.pop());
}
var-arr=新数组;
arr.push(“1”);
arr.push(“2”);
arr.push(“3”);
arr.push(“4”);
变量长度=arr.length;
for(var i=0;iPop从数组中删除元素,并减少length属性。因此,在两个循环之后,i=2,数组长度=2
var arr = new Array;
arr.push("1");
arr.push("2");
arr.push("3");
arr.push("4");
var len = arr.length;
for(var i=0;i<len;i++){
alert(arr.pop());
}
var-arr=新数组;
arr.push(“1”);
arr.push(“2”);
arr.push(“3”);
arr.push(“4”);
var len=阵列长度;
for(var i=0;i由于pop()操作,循环执行期间数组长度递减。因此,经过两次迭代后,i==2和arr.length==2非常棒!我真的是编程新手,或者另一种可能是为(var i=0,l=arr.length;i