在Ruby中,我有一个数组的数组 c = [["a"], ["b"]]
如何将其转换为c = a + b
c = ["a", "b"]
对于任何数组。也许不使用其他变量是可能的。 所有数组内部都没有被压平。
d = [ [["a"], ["b"]], [["c"], ["d"]], [["e"], ["f"]] ]
我需要 [ [["a"], ["b"], ["c"], ["d"], ["e"], ["f"]] ]
在Ruby中,我有一个数组的数组 c = [["a"], ["b"]]
如何将其转换为c = a + b
c = ["a", "b"]
对于任何数组。也许不使用其他变量是可能的。 所有数组内部都没有被压平。
d = [ [["a"], ["b"]], [["c"], ["d"]], [["e"], ["f"]] ]
我需要 [ [["a"], ["b"], ["c"], ["d"], ["e"], ["f"]] ]
Array#flatten也可以接受一个参数。
可选的level参数决定了扁平化的递归层数。
c = [[["a"]], [["b"]]]
c.flatten
# => ["a", "b"]
c.flatten(1)
# => [["a"], ["b"]]
使用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>
Ruby:
c = [["a"], ["b"]]
将数组的数组转换为数组
c.flatten
获取二维数组的总和
c.flatten.sum
Array#flatten
吗? - Andrewc.inject(:+)
? - Stefan