我有一个像这样的数组:
[1, 84]
[11, 29]
[11, 84]
[12, 18]
[15, 55]
[15, 4]
我想从这个数组生成一个新数组,例如:
[1, 84, 1]
[11, 113, 2]
[12, 18, 1]
[15, 59, 2]
其中每个子数组的第一个元素将是唯一的,它们对应的第二个元素将是总和,第三个元素将是它们的计数。在 11
的情况下,29 + 84 = 113
,并且 11
存在 2
次,所以 [ 11, 113, 2]
。
最佳答案
a.group_by(&:first).map { |k,v| [k,v.map(&:last).inject(:+),v.size] }
# => [[1, 84, 1], [11, 113, 2], [12, 18, 1], [15, 59, 2]]
关于ruby - 如何对数组中数组的每个唯一元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513576/