背景:我试图将一些使用Crossfilter库的JavaScript代码与D3.js数据可视化库转换为CoffeeScript。我如何将JavaScript forEach循环/函数转换为CoffeeScript
将JavaScript forEach循环/函数转换为CoffeeScript的最佳方法是什么?
这里的JavaScript代码:
// A little coercion, since the CSV is untyped.
flights.forEach(function(d, i) {
d.index = i;
d.date = parseDate(d.date);
d.delay = +d.delay;
d.distance = +d.distance;
});
能CoffeeScript中做一个循环内的内联函数?现在,我想我需要它分解成一个功能和循环:
coerce = (d) ->
d.index = 1
d.date = parseDate(d.date)
d.delay = +d.delay
d.distance = +d.distance
coerce(flights) for d in flights
就这样OP知道,这不等同于JS代码。它会遍历未声明的属性,而'forEach'则不会。此外,它不会在每次迭代过程中创建新的闭包,因此如果创建了处理程序,它们可能不会按预期运行。 – 2012-06-14 16:15:30
很好的补充,thanx – hvgotcodes