我有以下代码显然有效,但我相当确定在咖啡脚本中有一种更简洁的表达方式:
todos = []
for i in [1..10]
todos.push App.store.find App.Todo, i
我有以下代码显然有效,但我相当确定在咖啡脚本中有一种更简洁的表达方式:
todos = []
for i in [1..10]
todos.push App.store.find App.Todo, i
todos = (App.store.find(App.Todo, i) for i in [1..10])
括起来的括号表示一个列表推导,它将返回值收集到一个数组中并返回它。
考虑以下两个示例。括起来的括号改变了 Coffeescript 解释循环的方式。
# With parentheses (list comprehension)
todos = (App.store.find(App.Todo, i) for i in [1..10])
# Without parentheses (plain old loop)
todos = App.store.find(App.Todo, i) for i in [1..10]
和输出:
// With parentheses
todos = (function() {
var _i, _results;
_results = [];
for (i = _i = 1; _i <= 10; i = ++_i) {
_results.push(App.store.find(App.Todo, i));
}
return _results;
})();
// Without parentheses
for (i = _i = 1; _i <= 10; i = ++_i) {
todos = App.store.find(App.Todo, i);
}