Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用js数组作为堆栈_Javascript - Fatal编程技术网

Javascript 使用js数组作为堆栈

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

我认为它应该发出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.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