Ruby 将数组中的值组转换为单个值

Ruby 将数组中的值组转换为单个值,ruby,Ruby,我有这种数组: a = ["2 3", "4 5 6"] 但我需要转换成这样: a = ["2", "3", "4", "5","6"] 如何实现这一点?您可以尝试以下代码: arr = ["2 3", "4 5 6"] op = [] arr.each {|ele| ele.split(' ').each {|val| op << val}} 请试试这个 a = ["2 3", "4 5 6"] b= [] a.each do |a| b << a

我有这种数组:

a = ["2 3", "4 5 6"]
但我需要转换成这样:

a = ["2", "3", "4", "5","6"]

如何实现这一点?

您可以尝试以下代码:

arr = ["2 3", "4 5 6"]
op = []
arr.each {|ele| ele.split(' ').each {|val| op << val}}
请试试这个

a =  ["2 3", "4 5 6"]
b= []
   a.each do |a|
    b << a.split(" ")
   end
b.flatten!
希望这对你有帮助。

这个怎么样

a = ["2 3", "4 5 6"]
a.flat_map(&:split)
# => ["2", "3", "4", "5", "6"]
这大致相当于:

a.map {|s| s.split }.flatten

您也可以使用此一行:

a.map{|x| x.split(" ")}.flatten

希望能有所帮助:

对于那些对平面地图感到困惑的人,请这样想。如果我们使用map,我们会得到一个.map&:split=>[[2,3],[4,5,6]]。flat_map仅显示每个内部数组:[*[2,3],*[4,5,6]=>[2,3,4,5,6]。嗯,也许它应该被称为splat_map。谢谢@cary提供了有用的信息,不同于flap_map和map。看起来6已经消失了。我喜欢你跳出框框思考的方式。@Spickerman,当一个人迟到了,只剩下面包屑时,他别无选择。正是因为这个原因,我经常研究陈腐的问题来锻炼小灰细胞。
a.join(' ').split
  #=> ["2", "3", "4", "5", "6"]