在Ruby上。我有数组c = [["a"], ["b"]]
如何将其转换为c = a + b
c = ["a", "b"]
任何数组。也许有可能不使用其他变量。 所有阵列都没有变平。
d = [ [["a"], ["b"]], [["c"], ["d"]], [["e"], ["f"]] ]
我需要[ [["a"], ["b"], ["c"], ["d"], ["e"], ["f"]] ]
答案 0 :(得分:3)
Array#flatten也接受参数。
可选的level参数确定递归的级别 压平。
c = [[["a"]], [["b"]]]
c.flatten
# => ["a", "b"]
c.flatten(1)
# => [["a"], ["b"]]
答案 1 :(得分:1)
使用flatten
返回一个新数组,该数组是此数组的一维展平(递归)。也就是说,对于作为数组的每个元素,将其元素提取到新数组中。如果可选的level参数确定要递展的递归级别。
irb(main):001:0> a = [["a"], ["b"]]
=> [["a"], ["b"]]
irb(main):002:0> a.flatten
=> ["a", "b"]
您可以控制递归级别flatten(n)
:
irb(main):001:0> c = [[["a"]], [["b"]]]
=> [[["a"]], [["b"]]]
irb(main):002:0> c.flatten 1
=> [["a"], ["b"]]
irb(main):003:0>
答案 2 :(得分:0)
红宝石:
c = [["a"], ["b"]]
将数组数组转换为数组
c.flatten
获取数组数组的总和
c.flatten.sum