Noz*_*Noz 0 ruby arrays enumerable
我有以下代码:
>[['string', 'User'], Foo.all.map {|c| ["number", c.name]}, ['number', 'Average Time']]
=> [["string", "User"], [["number", "Bar1"], ["number", "Bar2"], ["number", "Bar3"]], ["datetime", "Average Time"]]
Run Code Online (Sandbox Code Playgroud)
我想做的是将传递的Foo可枚举数组简化为:
=> [["string", "User"], ["number", "Bar1"], ["number", "Bar2"], ["number", "Bar3"], ["datetime", "Average Time"]]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但是它没有做我想要的事情:
>[['string', 'User'], Foo.all.map {|c| ["number", c.name]}.flatten, ['number', 'Average Time']]
=> [["string", "User"], ["number", "Bar1", "number", "Bar2", "number", "Bar3"], ["datetime", "Average Time"]]
Run Code Online (Sandbox Code Playgroud)
请注意,在测试时,您可以使用示例输出演示替换Fool.all.map部件[["number", "Bar1"], ["number", "Bar2"], ["number", "Bar3"]].
使用splat运算符:
[
['string', 'User'],
*Foo.all.map { |c| ["number", c.name] },
['number', 'Average Time'],
]
Run Code Online (Sandbox Code Playgroud)