更优雅的coffeescript循环

时间:2012-05-23 16:59:38

标签: coffeescript

JS:

for(i=this.current.arr.length;i<this.counterLength;i++){
    dosomthing();
    dosomethingelse();
}

COFFEE:

i = @current.arr.length
while i < @counterLength
  dosomthing()
  dosomethingelse()
  i++

我知道coffeescript有很棒的循环语法糖果,但我找不到比这更优雅的写作方式。这样做有更多咖啡的方式吗?

我知道:

 for currentArr in current.arr
 //and
 for currentArr, 1 in current.arr

但我需要从@currentLength开始而不是0

1 个答案:

答案 0 :(得分:2)

您正在寻找[..]运营商:

start = this.current.arr.length
end = this.counterLength
for [start...end]
    dosomthing()
    dosomethingelse()

无需预定义startend,我只是用它来使代码更清晰一点。请注意,如果start大于end,那么它将会倒退。

实际上您需要[...]运算符,因为您在代码中使用了<而不是<=[...]运算符排除了最后一个元素。