Javascript / jQuery 功能类似于 Liquid: cycle
Javascript / jQuery function similar to 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
你可以使用闭包,
在外部范围内,您定义了一个跟踪索引的变量;
当返回的函数递增或重置索引时,
和 returns 相应的项目。
这是一个例子:
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 的功能,如下所述?
循环遍历一组字符串并按照它们作为参数传递的顺序输出它们。每次调用循环时,输出作为参数传递的下一个字符串。
输入:
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
输出:
one
two
three
one
你可以使用闭包,
在外部范围内,您定义了一个跟踪索引的变量;
当返回的函数递增或重置索引时,
和 returns 相应的项目。
这是一个例子:
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)