相关疑难解决方法(0)

如何在Ruby中有效地连接多个数组?

我只想在Ruby中连接多个数组,并且找不到令人满意的方法.

输入示例:

foo = [1, 2, 3]
bar = [4, 5, 6]
baz = [7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

预期结果:(不修改现有数组)

[1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

我的实际数组大得多,所以我对一个有效的解决方案很感兴趣.可能还有三个以上的数组,因此首选短语法.

到目前为止我尝试过的

  • foo + bar + baz是显而易见的,它简洁明了.但它被评估为(foo + bar) + baz.换句话说:它创建一个[1, 2, 3, 4, 5, 6]在整个操作后被抛弃的中间数组.如文档中所述:

    重复使用+=数组可能效率很低

  • [*foo, *bar, *baz]基本上内联对大型数组效率不高的元素.它看起来更像是对我的黑客攻击.

  • [foo, bar, baz].flatten(1) 看起来比上面更糟糕,表现明智.

  • [].concat(foo).concat(bar).concat(baz) 是最快的,但它看起来很麻烦,需要多个方法调用.

对于这样的基本任务,不应该有简单的类方法吗?就像是:

Array.concat(foo, bar, baz)
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗

ruby arrays concatenation

10
推荐指数
2
解决办法
5197
查看次数

标签 统计

arrays ×1

concatenation ×1

ruby ×1