2016-12-06 16 views
-1

我有阵列的一个这样的数组:复制使用在轨道红宝石基于它的值的数组内的子阵列

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

我要循环的子阵列,并且如果每个阵列的第二元素包含逗号我想用逗号分割该元素,然后在数组中创建该子数组的副本,但使用不带逗号的单个值。所以我希望得到这样的结果:

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

我要说明的是,如果它是由这样的'的东西,有什么地方两个或多个元素的数组的第二个元素,则第三个元素会自动有相同的结构'123456321,1234563212'。所以我的问题是,如果有可能在rails上使用ruby来做这样的事情? 谢谢!

回答

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 
+0

为了安全起见,也许'split(/ \ s *,\ s * /)'。 –

+0

它的工作原理。非常感谢! – Lucasio

+0

你能帮我扭转这种情况吗?从数组=​​ [[1,'Something','123456321'],[2,'Something','123456321'],[2,'Something',1234563212']]'array'[[1, 'Something','123456321'],[2,'Something,Something','123456321,1234563212']]' – Lucasio