从CoffeeScript中的数组中获取每两个元素
我想使用数组中的每一对条目。在CoffeeScript中有没有一种有效的方法可以在不使用数组的从CoffeeScript中的数组中获取每两个元素,coffeescript,Coffeescript,我想使用数组中的每一对条目。在CoffeeScript中有没有一种有效的方法可以在不使用数组的length属性的情况下执行此操作 我目前正在做如下工作: # arr is an array for i in [0...arr.length] first = arr[i] second = arr[++i] CoffeeScript用于调整正常循环的步长。因此,在第2步中迭代数组,并使用索引获取元素: a = [ 1, 2, 3, 4 ] for e, i in a by 2
length
属性的情况下执行此操作
我目前正在做如下工作:
# arr is an array
for i in [0...arr.length]
first = arr[i]
second = arr[++i]
CoffeeScript用于调整正常循环的步长。因此,在第2步中迭代数组,并使用索引获取元素:
a = [ 1, 2, 3, 4 ]
for e, i in a by 2
first = a[i]
second = a[i + 1]
# Do interesting things here
演示:
如果需要,可以在循环中使用与数组切片相结合的非结构化赋值:
a = [ 'a', 'b', 'c', 'd' ]
for e, i in a by 2
[first, second] = a[i .. i + 1]
#...
演示:
也可以跳过忽略的变量并使用范围循环:
# three dots, not two
for i in [0 ... a.length] by 2
[first, second] = a[i .. i + 1]
#...
演示:
这将编译成一个for(i=0;i
循环,就像所有其他循环一样,因此该范围不会花费任何成本。 信息量很大。如果你充分利用咖啡脚本的潜力,它是一种非常美丽的语言。