我是 Ruby on Rails 的新手,我遇到了一个奇怪的数组情况,我无法弄清楚如何有效地执行。
我有这个起始数组:
[["6884", true], ["8456", false], ["5631", false]]
然后我有另一个一维数组:
["6884", "8023", "9837"]
我想通过将值附加到二维数组中相同索引处的数组末尾,将一维数组合并到数组数组中。
所以最终的产品应该是:
[["6884", true, "6884"], ["8456", false, "8023"], ["5631", false, "9837]]
因此,一维数组中索引 0 处的值将附加到二维数组中索引 0 处的数组末尾,对于一维数组中的每个元素依此类推。是否有一种简单的 Ruby 方法可以完成此任务?
最佳答案
您可以使用 zip
和 flatten
方法,如下所示:
a = [["6884", true], ["8456", false], ["5631", false]]
b = ["6884", "8023", "9837"]
a.zip(b)
# [[["6884", true], "6884"], [["8456", false], "8023"], [["5631", false], "9837"]]
# Then use flatten to this array:
a.zip(b).map(&:flatten)
# [["6884", true, "6884"], ["8456", false, "8023"], ["5631", false, "9837"]]
https://stackoverflow.com/questions/73449227/