如何在Ruby中找到每个数组的总和

时间:2014-04-18 13:12:53

标签: ruby arrays

我试图找到每个数组的总和。

(1..9).to_a.combination(3).to_a.each{ |item| item.inject{:+}}

但是我的代码给出了以下内容。

[[1, 2, 3], [1, 2, 4], [1, 2, 5], [1, 2, 6], [1, 2, 7], [1, 2, 8], [1, 2, 9], 
[1, 3, 4], [1, 3, 5], [1, 3, 6], [1, 3, 7], [1, 3, 8], ...

我期待的是这样的。

[6, 7, 8, 9,...]

如何找到每个数组的总和?

3 个答案:

答案 0 :(得分:10)

您非常接近,您的代码稍作修改可能有所帮助:

(1..9).to_a.combination(3).map { |a| a.inject(:+) }

答案 1 :(得分:6)

(1..9).to_a.combination(3).to_a.map { |item| item.inject(:+) }

答案 2 :(得分:0)

我找到了#reduce的另一种方式。

(1..9).to_a.combination(3).map { |item| item.reduce(:+) }