4

私はまさにこれをやろうとしていますが、CoffeeScriptを使用しています:

# ruby:
items.map {|item| item.price * item.quantity }.reduce(:+)

私がこれまでに持っているもの:

# coffeescript:
item.price * item.quantity for item in items

配列内のすべての項目を合計するにはどうすればよいですか? より一般的には、配列内のすべての項目に対して操作を実行するにはどうすればよいですか(Ruby では、injectまたはになります)。reduce

4

3 に答える 3

3

気にしないで、見つけました。で完了ですreduce

(item.price * item.quantity for item in items).reduce (x, y) -> x + y
于 2012-06-19T02:51:25.290 に答える
2

一般的なreduce関数についてはわかりませんが、アキュムレータだけでできる

sum = 0
sum += item.price * item.quantity for item in items
于 2012-06-19T02:52:06.227 に答える
0

より一般的な reduce 関数は次のようになります。

total = ((agg = 0) ->
  agg + item.price * item.quantity
)(total, item) for item in items

また

result = ((aggregate = 'default value') ->
  // function body changing, then returning aggregate
  aggregate
)(result, i) for i in some_array
于 2013-05-31T07:09:53.493 に答える