javascript - 使用js数组作为栈

标签 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());
   }

最佳答案

for 循环更改为 while 循环:

while(arr.length) {
    alert(arr.pop());   
}

问题是您从数组中删除了元素,因此 length 减少了,从而提前结束了 for 循环。在 for 循环迭代 2 次之后,arr.length 为 2,i 也为 2,因此循环结束。

这是一个working example以上。

关于javascript - 使用js数组作为栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10849052/

相关文章:

javascript - 使用 Jquery Ajax 在 Spring MVC Controller 中传递字符串列表

javascript - 将选项文本而不是选项值传递到文本字段

javascript - 将对象键值与数组中的值进行匹配

javascript - 当页面包含 iframe 时,Wicket 无法重新加载页面 onSubmit

javascript - OS X WebKit WebView 不显示 JS 弹出窗口

javascript - 使用 Grunt Copy Task 时文件树的扁平化

javascript - 如何加快初始 TypeScript 编译时间

javascript - Jquery - 将图像从一个元素移动到另一个元素

javascript - 在 Angular 中使用 Http get 服务

javascript - 如何使用 javascript 从浏览器获取 HTTP_ACCEPT header ?