首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用pureJS循环遍历数组并以500 to间隔显示相邻的每个值?

如何使用pureJS循环遍历数组并以500 to间隔显示相邻的每个值?
EN

Stack Overflow用户
提问于 2020-02-23 23:42:48
回答 3查看 129关注 0票数 0

下面的循环基本上通过我的数组(即sumFormat )循环,然后用一个500ms间隔显示数组的每个值,这很好,但是它只在一次显示数组值,所以

例如,如果数组包含[1, 2, 3]

  • --它显示1然后500ms显示2代替1
  • ,但我希望它显示1然后显示500ms后面显示2 H 214H 115 1 so 1 2 H 218H 119,然后1 2 3等等,H 221F 222/code>

我试过想办法,但似乎搞错了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (var i = 0; i < sumFormat.length; i++) {
    (function(i) {
        setTimeout(function() {
            factOut.innerHTML = sumFormat[i];
        }, 500 * i);
    })(i);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-23 23:45:17

与现有的innerHTML连接,而不仅仅是分配给它,因为这将覆盖以前存在的任何内容。您还可以使用let而不是var来使代码更加整洁。另外,由于您只是插入文本,而不是HTML标记,所以最好使用textContent

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const sumFormat = [1, 2, 3, 4, 5];
for (let i = 0; i < sumFormat.length; i++) {
  setTimeout(function() {
    factOut.textContent += ' ' + sumFormat[i];
  }, 500 * i);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="factOut"></div>

另一种方法是将数组项从0连接到当前索引:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const sumFormat = [1, 2, 3, 4, 5];
for (let i = 0; i < sumFormat.length; i++) {
  setTimeout(function() {
    factOut.textContent = sumFormat.slice(0, i + 1).join(' ');
  }, 500 * i);
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="factOut"></div>

票数 3
EN

Stack Overflow用户

发布于 2020-02-24 04:07:36

有几件事我会在这里改变。

使用多个setTimeout并将超时值设置为递增值可能会导致问题--如果您想要解决这些问题,超时在JS中是一个有限的资源。

如图所示,一种选择可能是使用setInterval作为用户,但我最喜欢的是使用异步/等待。

另外,如果您的列表变得很长,那么不断地更改innerHTML对DOM不是很好,相反,创建另一个DOM元素并添加这些元素将更有效率。他们的另一个优点是分开,这使得他们的风格也简单得多。

下面是一个使用async/await并添加到DOM中的示例,而不是不断地更新innerHTML,只是为了好玩,给它添加一些样式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const delay=ms=>new Promise(r=>setTimeout(r,ms));

(async function() {
  const sumFormat = [1,2,3,4];
  for (const i of sumFormat) {
    const num = document.createElement('span');
    num.innerText = i;
    factOut.appendChild(num);
    await delay(500);
  }
}());
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
span {
  padding: 0.2rem 0.4rem;
  margin: 0.2rem 0.3em;
  background-color: lightblue;
  border: 1px solid black;
  border-radius: 0.5rem;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="factOut"></div>

票数 2
EN

Stack Overflow用户

发布于 2020-02-23 23:55:47

下面是使用setInterval()的示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function SetValue(text, at){
     factOut.innerHTML += text[at] + (text.length-1 == at ?"":" "); 
} 

var sumFormat = [1,2,3,4,5];
var i = 0;
var myinterval = setInterval(function(){
     if(i == sumFormat.length){
      clearInterval(myinterval);
      return;
     }
     SetValue(sumFormat,i);
     i++;
},500) 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="factOut" />

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

https://stackoverflow.com/questions/60371412

复制
相关文章
java中遍历数组_java循环取数组值
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
2.8K0
js 使用for循环遍历数组[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115947.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
3.2K0
数组或对象中的内容间隔显示
总结:间隔显示,不要使用for 循环,原因是for循环是同步,setTimeout是异步,同步执行完再执行异步。
tianyawhl
2019/11/07
4.3K0
python for循环如何遍历多个数组 和 遍历list(列表)
i = [1,2,3] o = [4,5,6] for i2,o2 in zip(i,o): print i2,o2 结果: 1 4 2 5 3 6 字典: i = {"1":"123","2":"abc"} o = {"3":"456","4":"def"} for k,v in zip(i,o): print i[k],o[v] 结果: 123 456 abc def =======遍历List======= list = ['html', 'js', 'css', 'p
简单、
2018/07/18
9.7K0
Java数组循环_java遍历object数组
三维数组:int[][][]arr = { { {1,2},{3,4,5},{6}},{ {7,8},{9}},{ {10,11},{12,13}}}
全栈程序员站长
2022/11/04
2.7K0
jsonObject遍历_遍历数组找重复值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172473.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
2.3K0
jsonObject遍历_遍历数组找重复值
python中循环遍历for怎么用_python遍历字典的值
Python 会自动将dict_1视为字典,并允许你迭代其key键。然后,我们就可以使用索引运算符,来获取每个value值。
全栈程序员站长
2022/09/22
6K0
python中循环遍历for怎么用_python遍历字典的值
【Python】列表 List ⑦ ( 列表遍历 | 使用 while 循环遍历列表 | 使用 for 循环遍历列表 | while 循环 与 for 循环对比 )
将 列表 容器 中的数据元素 , 依次逐个取出进行处理的操作 , 称为 列表的遍历 ;
韩曙亮
2023/10/11
8940
使用for循环遍历QMap
  我们再看看使用for循环是怎么遍历的。下面介绍三种使用for循环的实现方法,你喜欢那种呢。
Qt君
2023/03/17
3K0
使用for循环遍历QMap
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
使用 for 循环 , 遍历集合 , 格式为 : for ( 变量名 in 集合变量名 ) ;
韩曙亮
2023/03/30
3.3K0
【Groovy】集合遍历 ( 使用 for 循环遍历集合 | 使用集合的 each 方法遍历集合 | 集合的 each 方法返回值分析 )
JQuery跳出each循环的方法(包含数组遍历)
break----用return false;  continue --用return ture;
ydymz
2018/09/10
2.9K0
java如何遍历数组中的元素_js数组遍历方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/04
6.4K0
c语言如何遍历数组,C语言数组遍历
其中 count 是数组的元素的个数,此时,数组的每一个元素是 arr[i],注意每次遍历完之后,一定要加 i 的值加一,否则,就成了死循环。
全栈程序员站长
2022/09/16
6.9K0
c语言如何遍历数组,C语言数组遍历
java map循环遍历_遍历循环中的遍历结构可以是
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java map循环遍历_遍历循环中的遍历结构可以是,希望能够帮助大家进步!!!
Java架构师必看
2022/09/18
2.1K0
PHP foreach 遍历数组时候如何使用 list()
在 PHP 中,遍历一组非关联的多维数组,大部分代码是这样的: $items = array( array('var1', 'var2', 'var3'), array('var1', 'var2', 'var3'), array('var1', 'var2', 'var3'), array('var1', 'var2', 'var3'), array('var1', 'var2', 'var3'), ); foreach ($items as $item){
Denis
2023/04/14
1.1K0
JSTL和EL表达式实现双重for循环的遍历(可取到数组下标的具体值)
JSTL和EL表达式实现Java双重for循环 1、在jsp页面中引入两个jstl标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 2、Maven项目中添加jar包依赖,需要jstl包和standard包 taglibs standard 1.
静谧星空TEL
2021/04/27
1.4K0
JSTL和EL表达式实现双重for循环的遍历(可取到数组下标的具体值)
使用数组作为索引遍历numpy数组
python使用数组作为索引遍历数组 import numpy as np a=np.arange(0,5) print(a) # [0 1 2 3 4] b=np.arange(0,10).reshape(5,2) print(b) # [[0 1] # [2 3] # [4 5] # [6 7] # [8 9]] # 将一维数组作为二维数组的索引 c0=b[a][:,0] print(c0) # [0 2 4 6 8] c1=b[a][:,1] print(c1) # [1 3 5 7 9
演化计算与人工智能
2020/08/14
2.5K0
JS 中循环遍历数组方式总结
JavaScript 中的 for 循环很古老,它在 ECMAScript 1 中就已经存在了。for 循环记录 arr 每个元素的索引和值:
疯狂的技术宅
2021/01/28
3.4K0
Python-使用for循环遍历文件
fd.read()         从头读到位,读完后指针指向文件的末尾,返回的是字符。
py3study
2020/01/09
2.1K0
【Python】元组 tuple ③ ( 元组中 列表类型 元素值可修改 | 元组 while 循环遍历 | 元组 for 循环遍历 )
元组中的 元素 是 不可修改的 , 但是如果在 元组中 放入了一个 列表类型的元素 , 列表引用无法修改 , 但是列表中的 元素是可以修改的 ;
韩曙亮
2023/10/11
3530

相似问题

如何无限期地遍历数组并以角度显示值?

111

遍历数组并以项目符号显示

20

循环遍历数组并以特定方式列出

21

循环遍历每个值

10

使用每个jquery循环遍历数组

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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