在 Coffeescript 中强制迭代 for 循环

Forcefully iterate for loop in Coffeescript

本文关键字:迭代 for 循环 Coffeescript      更新时间:2023-09-26

在某些复杂的情况下,您需要手动强制 for 循环转到不同的位置:

for(var i = 0; i < objects.length; i++) {
  var object = objects[i];
  if(object.type == typeThatShouldOnlyDisplayOnce) {
    displayObject();
    i += jumpToValidPosition;
  }
}

如何在 CoffeeScript 中做到这一点?CoffeeScript的for loops就像

for i in [0...100]
  doSomething()

看看编译的Javascript代码,这似乎更像是

for (n = i = ref = 0, ref1 = 100; ref <= ref1 ? i < ref1 : i > ref1; n = ref <= ref1 ? ++i : --i) {

有没有一种 CoffeeScript 方法可以强行跳到另一个循环位置?

for循环只是while循环的语法糖,因此您可以这样重写它:

i = 0
while i < objects.length
  object = objects[i]
  if object.type == typeThatShouldOnlyDisplayOnce
    displayObject()
    i += jumpToValidPosition
  else
    i++