menu i + 1, dish for dish, i in courses
这是coffeescript主页“Loops and Comprehensions”部分的一行示例代码。它将产生如下所示,也在主页上提供:
for (i = _j = 0, _len1 = courses.length; _j < _len1; i = ++_j) {
dish = courses[i];
menu(i + 1, dish);
}
变量_j不是必需的,因此下面的代码也适用:
for (i = 0, _len1 = courses.length; i < _len1; i++) {
dish = courses[i];
menu(i + 1, dish);
}
为什么生成_j?我错了吗?
答案 0 :(得分:3)
为什么生成_j?
它允许您篡改循环体中的i
变量,并在每次迭代后将其重置为正确的_j
值。如果不这样做,CoffeeScript就无法识别,因此即使没有必要也无法省略它。
我错了吗?
不。只是不关心任何下划线前缀变量。