1
magnitudeArray = []
for index, dataPoint of chartData
     magnitudeArray.push dataPoint.magnitude if dataPoint.magnitude?

上面的代码有效,但对于咖啡脚本来说,它的丑陋和非咖啡脚本。首先,indexvar 完全没有被使用,它就在那里,所以我可以访问dataPointvar 作为关联数组的结果,而不是索引。还有它的三行!使用咖啡脚本循环,数组应该可以用一行写,而不是循环。

我想这样的事情是可能的:

magnitudeArray = for dataPoint of chartData when dataPoint.magnitude?

你知道更清洁的咖啡脚本这样做吗?

4

2 回答 2

1

您可以使用“解构分配”将其压缩更多

magnitudes = (magnitude for i, {magnitude} of chartData when magnitude?)

甚至

magnitudes = (m for i, {magnitude: m} of chartData when m?)
于 2012-06-22T03:45:12.303 回答
1

是的,在这种情况下,您应该能够使用数组推导,尽管您需要为 的键使用变量chartData,我假设它是一个对象。您可以使用_来表示未使用的变量(尽管我不知道这是否是 CoffeeScript 中的常见做法):

magnitudes = (point.magnitude for _, point of chartData when point.magnitude?)

coffeescript.org 上的示例

于 2012-06-22T02:36:47.010 回答