ruby - 如何根据 ruby​​ 中的条件加入一些(不是全部)数组元素?

标签 ruby arrays string

假设我有一个这样的字符串数组:

array = ["foo", "(bar)", "baaz", "quux", "herp", "(derp)"]

我需要将以“(”开头的项目与前一个项目连接起来,以获得如下输出:

["foo (bar)", "baaz", "quux", "herp (derp)"]

我想它必须是类似于获取与 /^\(/ 匹配的数组项的索引,然后迭代 block 中的原始数组,在 index-1 处连接项。 .index,并在 index

处删除

最佳答案

array.slice_before{|s| !s.start_with?("(")}.map{|a| a.join(" ")}
# => ["foo (bar)", "baaz", "quux", "herp (derp)"]

关于ruby - 如何根据 ruby​​ 中的条件加入一些(不是全部)数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24712309/

相关文章:

Ruby Time.new 提供 14 分钟的时区偏移

ruby - 在 Heroku 中的 Puma 上部署 Rails 应用程序时出错

ruby - 如何从 Ruby 中访问 gem 的版本?

带链接的 Ruby 枚举器

java - 检查字符串是否有允许值以外的值。 java

arrays - Lua的混合数组和哈希表;它存在于其他任何地方吗?

python - 在 Python 中创建这个 numpy 数组

javascript - 使用多个条件过滤数组

string - Constant block 中的原始字符串文字

python - 如何使用 for 循环在提供的字符串中交替大小写