【问题标题】:How can I reset the index within an each loop after the index has hit a specific number索引达到特定数字后,如何在每个循环中重置索引
【发布时间】:2017-03-20 02:27:58
【问题描述】:

我知道标题听起来很复杂,但我想要实现的目标应该很简单。

好的,假设您使用 jQuery each 循环来循环任何内容(不管是什么)。然后在特定迭代之后,您希望循环索引重置并开始重新计数,而不是仅仅计数。您将如何实现这一目标?

所以为了这个例子,我只是做了一个简单的列表项,我正在循环遍历,在第 4 次迭代之后,我希望索引回到 0 并再次计数,而不是 5 、 6 、 7 ,8 , 9

JSfiddle: https://jsfiddle.net/b9de1xr0/

在我上面的 JSfiddle 中,您会看到循环中的索引被注销到控制台,如下所示 0, 1, 2, 3, 4, ,5 ,6 ,7 ,8 ,9。现在我正在尝试使它在索引大于 4 后循环内的索引将重新启动并显示如下 0, 1, 2, 3, 4, 0, 1, 2, 3, 4

我怎样才能做到这一点?

我的简单 Javascript:

$('li').each(function(i){
    if(i <= 4){
    console.log(i);
  }
  if(i > 4){
    console.log(i); //want it to restart the index back at 0 here
    }
});

谢谢!

【问题讨论】:

  • @gyre 不应该是一个无限循环,因为它的迭代次数与元素数量(即 10 li 元素)一样多
  • 我误解了你的意图。我以为您想重新启动循环,而不是使用索引记录不同的模式。请参阅下面的答案。
  • demo这是你想要的吗?
  • 不能重启i,是回调参数,你不控制,本例jquery可以
  • 因为它实际上不需要成为索引,所以您可以声明一个计数器并在第 5 次迭代时将其重置为 0。

标签: javascript jquery html loops indexing


【解决方案1】:

如何使用模 (%) 运算符:

$('li').each(function (i) {
  i %= 5
  console.log(i)
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2020-10-12
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多