使用ruby on rails在数组中基于它的值复制子数组

时间:2016-12-06 17:52:25

标签: ruby ruby-on-rails-3.2

我有一个像这样的数组:

array = [[1, 'Something', '123456321'], [2, 'Something, Something', '123456321, 1234563212']]

我想循环子数组,如果每个数组的第二个元素都包含逗号,我想用逗号分割该元素,然后在数组中制作该子数组的副本,但是单个值没有逗号。所以我想得到这个结果:

array = [[1, 'Something', '123456321'], [2, 'Something', '123456321'], [2, 'Something', 1234563212']]

我想要注意的是,如果数组的第二个元素由两个或多个元素组成,例如' Something,Something' 那么第三个元素会自动生成具有相同的结构' 123456321,1234563212' 。所以我的问题是,是否有可能在轨道上使用ruby做这样的事情? 谢谢!

1 个答案:

答案 0 :(得分:3)

array.flat_map do |id, names, values|
  parsed_names  = names.split(', ')
  parsed_values = values.split(', ')

  parsed_names.zip(parsed_values).map { |name, value| [id, name, value] }
end