Arrays Ruby-将数组的某些元素组合成一个新数组
我正在尝试将数组的某些元素合并到一个数组中 我有以下资料:Arrays Ruby-将数组的某些元素组合成一个新数组,arrays,ruby,Arrays,Ruby,我正在尝试将数组的某些元素合并到一个数组中 我有以下资料: arr1: ["element1":"ABC", "element1":"DEF","element1":"GHI"] arr2: ["element2":"123", "element2":"456", "element2":"789"] arr3: ["element3":"JKL", "element3":"MNO", "element3":"PQR"] 我试图将第一个元素合并到一个数组中,然后是第二个,然后是第三个,以生成:
arr1: ["element1":"ABC", "element1":"DEF","element1":"GHI"]
arr2: ["element2":"123", "element2":"456", "element2":"789"]
arr3: ["element3":"JKL", "element3":"MNO", "element3":"PQR"]
我试图将第一个元素合并到一个数组中,然后是第二个,然后是第三个,以生成:
arr4: ["element1":"ABC", "element2":"123", "element3":"JKL"]
arr5: ["element1":"DEF", "element2":"456", "element3":"MNO"]
arr6: ["element1":"GHI", "element2":"789", "element3":"PQR"]
我目前掌握的代码是:
test1 = ["element1:"+arr1[0] +', "element2:"'+ arr2[0] + ', "element3:" '+arr3[0]]
test2 = ["element1:"+arr1[1] +', "element2:"'+ arr2[1] + ', "element3:" '+arr3[1]]
test3 = ["element1:"+arr1[2] +', "element2:"'+ arr2[2] + ', "element3:" '+arr3[2]]
但是我得到了一个混乱的结果——我做错了什么
arr1 = ["ABC", "DEF", "GHI"]
arr2 = ["123", "456", "789"]
arr3 = ["JKL", "MNO", "PQR"]
与并行赋值一起使用
arr4, arr5, arr6 = [arr1, arr2, arr3].transpose
arr4 #=> ["ABC", "123", "JKL"]
arr5 #=> ["DEF", "456", "MNO"]
arr6 #=> ["GHI", "789", "PQR"]
而且是。只要可以使用transpose
,就可以选择zip
。如果数组arr1
、arr2
和arr3
的大小都相同(根据transpose
的要求,而不是zip
的要求),则情况也相反
嗯,你的输入和输出看起来与问题的完全不同。@Stefan OP有我在回答中给出的数组(尽管有一些语法错误)。不幸的是,您无法在问题的编辑历史记录中看到这一点。无论如何,这里的总体思路是我希望的重要事情:)好的。。。只是看起来很奇怪。他们为什么要这样破坏自己的问题。。。唉,你的数据毫无意义。例如,您的
[“element1”:“ABC”,“element1”:“DEF”,“element1”:“GHI”]
实际上是[{:element1=>“GHI”}]
。
arr1.zip(arr2, arr3)
#=> [["ABC", "123", "JKL"],
# ["DEF", "456", "MNO"],
# ["GHI", "789", "PQR"]]