6
我想使用數組中的每對條目。有沒有一種有效的方法可以在不使用數組的length
屬性的情況下在CoffeeScript中執行此操作?在CoffeeScript中獲取數組中的每兩個元素
我目前在做類似如下:
# arr is an array
for i in [0...arr.length]
first = arr[i]
second = arr[++i]
我想使用數組中的每對條目。有沒有一種有效的方法可以在不使用數組的length
屬性的情況下在CoffeeScript中執行此操作?在CoffeeScript中獲取數組中的每兩個元素
我目前在做類似如下:
# 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)
像所有的休息這樣做的範圍不花一分錢
非常豐富。如果您充分發揮它的潛力,CoffeeScript就是這樣一種美麗的語言。 – 2014-04-05 16:56:03