我有一个像这样的数组:
array = [[1, 'Something', '123456321'], [2, 'Something', '123456321'], [2, 'Something', '1234563212']]
我想合并具有相同id的子数组并获得此结果:
array = [[1, 'Something', '123456321'], [2, 'Something, Something', '123456321, 1234563212']]
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:1)
array.group_by(&:first).map do |id, records|
names = records.map(&:second).join(', ')
values = records.map(&:last).join(', ')
[id, names, values]
end
正如您最近提出的相反问题,我建议您阅读Enumerable
,Array
,Hash
和String
文件。它将使您在表达性方面立即得到提升,并了解如何使用Ruby执行常见任务。
答案 1 :(得分:0)
只是为了好玩,这里有一个单行:
array.group_by(&:first).map{|i, arrays| [i] + arrays.transpose.drop(1).map{|v| v.join(', ') } }