Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Javascript循环通过数组无限地不工作

Javascript循环通过数组无限地不工作
EN

Stack Overflow用户
提问于 2016-04-14 10:18:32
回答 4查看 5.8K关注 0票数 2

我有这个Javascript代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var headlineStore = [
    function headline1(){
       //irrelevant code
    },
    function headline2(){
       //irrelevant code
    },
    function headline4(){
       //irrelevant code
    },
    function headline4(){
       //irrelevant code
    },
    function headline5(){
       //irrelevant code
    }
]


 for(var i = 0; i < headlineStore.length; i++){  //for loop to loop through array named headlineStore

     if(i == 4) //if condition to reset the counter once it reaches 5
     {
         i = 0;
     }

     (function(i){
         setTimeout(function(){
             headlineStore[i]();
         }, 5000  * i);
     }(i)); //Will load each function in the array with timeout increments 
 }  

我这里有一个for循环,它通过一个充满函数的数组循环。在每次迭代时,都会检索数组中的函数,并按时间间隔执行。

我想要的是,在检索最后一个函数之后,它再次遍历数组,从第一个函数开始,并将无限地循环。

我尝试的是当计数器达到4时重置,但是它退出循环并继续执行,然后由于某种原因页面变得没有响应。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-04-14 10:43:37

在设置下一个超时之前,您需要等到最后一个执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var headlineStore = [
    function headline1(){
       document.write('1');
    },
    function headline2(){
       document.write('2');
    },
    function headline3(){
       document.write('3');
    },
    function headline4(){
       document.write('4');
    },
    function headline5(){
       document.write('5');
    }
]

function nextHeadline(index) {
  headlineStore[index]();
  window.setTimeout( 
    nextHeadline.bind(undefined, (index + 1) % headlineStore.length), 1000 );  
}

nextHeadline(0);

票数 4
EN

Stack Overflow用户

发布于 2016-04-14 10:42:28

我认为这更符合您需要的内容(每5秒调用1函数)。对这种使用setTimeout的支持取决于浏览器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var timeoutHandle = undefined;

headlineStore =
[ function1
, function2
, function3
  ...
];

function showHeadline(idx) {
    headlineStore[idx](idx);
    timeoutHandle = setTimeout(showHeadline, 5000, (idx+1)%headlineStore.length);
}

showHeadline(0);
票数 2
EN

Stack Overflow用户

发布于 2016-04-14 10:41:44

你可以利用.queue().promise()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var headlineStore = [
  function headline1(next) {
    //irrelevant code
    console.log("headline1");
    setTimeout(next, 5000);
  },
  function headline2(next) {
    //irrelevant code
    console.log("headline2");
    setTimeout(next, 5000);
  },
  function headline3(next) {
    //irrelevant code
    console.log("headline3");
    setTimeout(next, 5000);
  },
  function headline4(next) {
    //irrelevant code
    console.log("headline4");
    setTimeout(next, 5000);
  },
  function headline5(next) {
    //irrelevant code
    console.log("headline5");
    setTimeout(next, 5000);
  }
];

(function cycle() {
  return $({}).queue("headlines", $.map(headlineStore, function(headline, i) {
      return headline
    })).dequeue("headlines")
    .promise("headlines")
    .then(cycle) // loop infinitely
}());
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36630950

复制
相关文章
JavaScript For循环与数组
for 是 JavaScript 提供的另一种循环控制的话句,它和 while 只是语法上存在差异。
用户9615083
2023/10/18
1720
JavaScript For循环与数组
无限循环
#!/usr/bin/python # -*- coding: UTF-8 -*- var = 1 while var == 1 : # 该条件永远为true,循环将无限执行下去 num = raw_input("Enter a number :") print "You entered: ", num print "Good bye!"
用户8442333
2021/05/26
1.9K0
onResume无限循环
查看Log,onResume和onPause在不停的执行,debug排查发现是因为请求权限导致的。
全栈程序员站长
2022/09/05
1.5K0
[android] 轮播图-无限循环
在getCount()方法中,返回一个很大的值,Integer.MAX_VALUE
唯一Chat
2019/09/10
1.8K0
css动画无限循环
想要实现CSS动画的无限循环,其实主要就是要使用animation-iteration-count这个属性,将其设置为infinite,动画就会一直循环播放。
IT工作者
2022/02/15
6.3K0
13岁女学生被捕:因发布JavaScript无限循环代码
导读:日本刈谷市警方近日质询并指控了一名13岁的女学生,起因是她将一段恶意代码的链接放到了在线公告栏上,广泛传播代码。这段有问题的恶意代码是弹出警告消息的无限循环,每当你点击“确定”就会立即显示新的消息。
IT阅读排行榜
2019/03/19
8350
13岁女学生被捕:因发布JavaScript无限循环代码
自定义无限循环ViewPager(三)――ViewPager方法改造实现无限循环
在前面两篇文章中,已经对ViewPager的实现原理有了分析,相信大家对于ViewPager的页面切换也有了一定的了解,接下来就是在ViewPager的基础上对其进行改造,达到无限循环的目的。
用户3106371
2018/09/12
3.6K0
自定义无限循环ViewPager(三)――ViewPager方法改造实现无限循环
php数组通过递归转换成无限级树结构
//id作为索引,pid 为父索引 function tree(&$list,$pid=0){ $tree=[]; foreach ($list as $key=>$item){ if ($item['pid']===$pid){ $tree[$item['id']]=$item; unset($list[key]); //删除当前项,减小递归压力
lascyb
2021/11/01
1.2K0
循环数组
array ( 'product_id' => array ( 0 => '1', 1 => '16', ), 'product_price_id' => array ( 0 => '2', 1 => '', ), 'qty' => array ( 0 => '1', 1 => '1', ), )
botkenni
2022/01/10
1.3K0
JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式!
在单线程环境中编程的缺陷以及如何解决这些缺陷来构建健壮的JavaScript UI。按照惯例,在本文的最后,分享5个如何使用async/ wait编写更简洁代码的技巧。
Javanx
2019/10/12
3.1K0
JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式!
matlab如何循环_左手转笔教程无限循环
其中1:4代表一个行向量1 2 3 4,在matlab中,行向量的另外一个表示方法是[1 2 3 4],即for i=1:4等价于for i=[1 2 3 4],编写程序时牢记一个点:对于某次固定的迭代,i会从这个向量中取一个值,该值可以参与循环中的计算。
全栈程序员站长
2022/11/08
1.8K0
js图片横排无限循环滚动
一个好的插件地址:http://www.superslide2.com/demo.html
全栈程序员站长
2022/09/09
9.6K0
C++ do while无限循环~
i大于0|| i++,可以无限递增,我也只是刚好看到,写了一个试试,如果你们有更好的,欢迎留言,一起交流!
用户7886150
2021/02/03
2K0
前端-part4-JavaScript字符串+数组+循环
1.字符串的一般操作 1.字符串的强转 var a ="123"; var b =parseInt(a); //parseInt()方法将字符串类型的数字转化为数字 console.log(b); 2.浮点型的强转 var a ="123.33"; var b =parseFloat(a); //parseFloat()方法将字符串类型的小数转化为小数 console.log(b); 3.字符串的拼接 var s1 = "leon"; var s2 = "haha"; var s3 = s1+s2; con
少年包青菜
2019/08/11
7630
JavaScript 循环
在程序开发中,存在大量的重复性操作或计算,这些任务必须依靠循环结构来完成。JavaScript 定义了 while、for 和do/while三种类型循环语句。
用户3519280
2023/07/07
1870
JavaScript 循环
javascript循环
1.while 语法格式:A. while(条件){ 执行语句 } 例如: var i=0; while(i<5){ i++; } console.log(i) //结果5 B. do{ 执行语句 }while(条件) 例如: var i=0; do{ i++; }while(i<5) console.log(i) //结果是5 2.
天天_哥
2018/09/29
5080
JavaScript for 循环
如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。
陈不成i
2021/07/16
4690
javascript图片无限懒加载
知识点:for循环语句,DOM概念,元素获取,动态布局,基本算法,节点操作,JQ与JS的关系与区别,JS的重要性,如何学习JS。 html代码: <div id="box"><!--id="自定义的名称" 命名规范(见名知义:用有语义的英文单词)--> <ul><!--无序列表标签--> <!--img图片四要素:src width height alt(解释说明)--> <li></li> <li></li>
IT架构圈
2018/06/01
1.7K0
为什么我不建议你通过 Python 去找工作?
这是读者“前进一点”在微信上问我的一个问题,我当时给他的回复是“Python 挺火的,学 Python 就好。”但当我在 B 站上看了羊哥的一期视频后,深感懊悔,觉得自己给出的建议是不负责任的。
黄啊码
2022/06/20
2.8K0
点击加载更多

相似问题

javascript while循环不工作(无限循环)

30

Javascript无限循环不循环

30

JavaScript:无限循环,还是不?

11

调用自身的函数不工作(无限循环,Javascript)

30

Flexslider无限循环不工作

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文