我正在努力做到这一点,但使用CoffeeScript:
# ruby:
items.map {|item| item.price * item.quantity }.reduce(:+)
到目前为止我所拥有的:
# coffeescript:
item.price * item.quantity for item in items
如何汇总数组中的所有项?更一般地说,我如何在数组中的所有项目上执行任何操作(在Ruby中,这将是inject
或reduce
)?
答案 0 :(得分:3)
没关系,我找到了。完成了reduce
(item.price * item.quantity for item in items).reduce (x, y) -> x + y
答案 1 :(得分:2)
我不知道一般的reduce函数,但对于累加器,你可以做
sum = 0
sum += item.price * item.quantity for item in items
答案 2 :(得分: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