【发布时间】:2021-05-20 11:17:46
【问题描述】:
所以我有两个数组,每个数组的项数相同。我一直在尝试在控制台中间隔打印这些项目。像这样的:
1
Bruce Wayne
45
然后每隔一秒就会打印出来:
2
Clark Kent
43
and so on till the last item.
打印完所有项目后停止。
现在我得到这样的东西:
1
Clark Kent
43
3
undefined
所以这是我尝试过的代码:
const superheroes = [
{
"name": "Bruce Wayne",
"age": 45
},
{
"name": "Clark Kent",
"age": 43
},
{
"name": "Oliver Queen",
"age": 41
},
,
{
"name": "Barry Allen",
"age": 25
}
];
const arr = [
'1',
'2',
'3',
'4'
];
const startBtn = document.querySelector('#start');
let index = 0;
$(startBtn).click(() => {
const interval = setInterval(() => {
const arrItem = arr[index++];
const superheroItem = superheroes[index++];
console.log(arrItem);
console.log(superheroItem);
if(index == arr.length){
clearInterval(interval);
}
}, 1000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="start">Start</button>
我该如何解决?
【问题讨论】:
-
您使用后增量运算符的方式存在问题。检查这个以了解它的工作developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
需要修复什么?当你运行它时会发生什么?顺便说一句,当您使用
index++增加索引时,它会在您使用该变量后增加,因此如果您从 0 开始,arrItem 将是 arr[0] 而 superHeroItem 将是超级英雄 [1]。您的下一个 arrItem 将是 arr[2],superHeroItem 将是 superHeroes[3],依此类推。 -
@AHMEDSAJJAD 哦,我明白了。有什么解决办法吗?
-
@user1599011 如果您不介意,请阅读这篇文章吗?我已经提供了那里的一切。
标签: javascript jquery arrays object