我想使用数组中的每一对条目。在 CoffeeScript 中是否有一种有效的方法可以在不使用length
数组属性的情况下做到这一点?
我目前正在做类似以下的事情:
# arr is an array
for i in [0...arr.length]
first = arr[i]
second = arr[++i]
我想使用数组中的每一对条目。在 CoffeeScript 中是否有一种有效的方法可以在不使用length
数组属性的情况下做到这一点?
我目前正在做类似以下的事情:
# arr is an array
for i in [0...arr.length]
first = arr[i]
second = arr[++i]
CoffeeScript用于调整正常循环for ... by
的步长。for
所以以 2 步迭代数组并使用索引获取元素:
a = [ 1, 2, 3, 4 ]
for e, i in a by 2
first = a[i]
second = a[i + 1]
# Do interesting things here
演示:http: //jsfiddle.net/ambiguous/pvXdA/
如果需要,可以在循环内使用解构赋值和数组切片:
a = [ 'a', 'b', 'c', 'd' ]
for e, i in a by 2
[first, second] = a[i .. i + 1]
#...
演示:http: //jsfiddle.net/ambiguous/DaMdV/
您还可以跳过忽略的变量并使用范围循环:
# three dots, not two
for i in [0 ... a.length] by 2
[first, second] = a[i .. i + 1]
#...
演示:http: //jsfiddle.net/ambiguous/U4AC5/
就像其他所有代码一样,它会编译成一个for(i = 0; i < a.length; i += 2)
循环,因此该范围不会花费您任何费用。</p>