Javascript/jQuery 函数类似于 Liquid : cycle

标签 javascript jquery iteration liquid cycle

JavaScript/jQuery 中是否有类似于 Liquid 的函数 cycle 如下所述?

循环一组字符串并按照它们作为参数传递的顺序输出它们。每次调用循环时,都会输出作为参数传递的下一个字符串。

输入:

{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}

输出:

one
two
three
one

我一直在尝试查看loop , forEach , do/while但无法理解。
感谢您的任何建议。

最佳答案

你可以使用闭包,
在外部范围内,您定义一个跟踪索引的变量;
当返回的函数递增或重置索引时, 并返回相应的项目。

这是一个例子:

function cycle(arr) {
  cycle.i = -1

  //return a closure for cycling
  return function() {
    cycle.i = cycle.i < arr.length - 1 ? cycle.i + 1 : 0

    return arr[cycle.i]
  }
}

var it = cycle(['one', 'two', 'three'])
setInterval(function() {
  console.log(it())
}, 500)

关于Javascript/jQuery 函数类似于 Liquid : cycle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50668014/

相关文章:

javascript - (jquery).load 函数

python - 根据迭代的内部列表值合并两个外部列表

ios - 向后迭代for循环?

javascript - 在外部类上应用悬停,但不在内部 div 上应用

javascript - 为什么我不能将两个 jQuery 函数一个放在另一个里面?

Javascript:在循环时向数组添加值,然后也将包含在循环中

javascript - Backbone.js和localStorage插件集合和模型的关系——基于官方 'todo'示例

jquery - 更改 iframe 元素的值

javascript - 如何在动态添加/删除输入字段中获取唯一的随机值

javascript - 迭代遍历嵌套对象中的所有节点(不使用递归)