将colums组合成嵌套数组

时间:2016-05-09 13:46:43

标签: arrays ruby

我试图用多个数组制作一个嵌套数组。我有两个这样的数组:

cat = ["cat1", "cat2", "cat3"] 
dog = ["dog1", "dog2", "dog3"]

是否可以制作这样的数组(标题"cats""dogs")?

animals = [["cats", "dogs"], ["cat1", "dog1"], ["cat2", "dog2"], ["cat3", "dog3"]]

我可以使用一些很长的有线代码来做到这一点,但有一种简单的方法可以做到这一点吗?

3 个答案:

答案 0 :(得分:5)

如果您希望将标题保持接近其值,您还可以使用:

['cats', *cat].zip(['dogs', *dog])
#=> [["cats", "dogs"], ["cat1", "dog1"], ["cat2", "dog2"], ["cat3", "dog3"]]

答案 1 :(得分:4)

您正在寻找Array#zip

[%w(cats dogs), *cats.zip(dogs)]

答案 2 :(得分:3)

[cat, dog].transpose.unshift(%w[cats dogs])