背景:我試圖將一些使用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