我有一个像这样的数组:
[1, 84]
[11, 29]
[11, 84]
[12, 18]
[15, 55]
[15, 4]
Run Code Online (Sandbox Code Playgroud)
我想从这个数组生成一个新数组,如:
[1, 84, 1]
[11, 113, 2]
[12, 18, 1]
[15, 59, 2]
Run Code Online (Sandbox Code Playgroud)
其中每个子数组的第一个元素将是唯一的,它们对应的第二个元素将是sum,第三个元素将是它们的计数.在情况下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]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |