ruby - 如何并行遍历多个数组?

标签 ruby

我有 4 个数组。

["one", "two", "three"]
["1", "2", "3"
["un", "deux", "trois"]
["ichi", "ni", "san"]

是否可以连接各自数组中的每个元素?

所以我最终得到了单行字符串,就像这样

"one, 1, un, ichi"\n
"two,2, deux,ni"\n

等等……

是否可以在一个循环中执行此操作?

for i in (1..array1.count)

puts array1[i] + ", " + array2[i] + ", " + array3[i] + ", " + array4[i]

end

当可能存在不可预测的数组数量并且每个数组大小不等时会发生什么?

最佳答案

简单:

a = [array1,array2,array3,array4] # or however many you have

puts a.transpose.map {|x| x.join(", ")}.join("\n")

这将适用于任意数量的子数组,只要它们的大小都相同(无论大小是多少)。

如果子数组的长度不同,但是使用第一个的长度就可以了,你可以这样做:

a[0].zip(*a[1..-1]).map {|x| x.join(", ")}.join("\n")

关于ruby - 如何并行遍历多个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598483/

相关文章:

ruby-on-rails - 用于拆分用户和日期文本输入的 Ruby 正则表达式

ruby - 用 Prawn 改变 pdf 的背景颜色?

ruby-on-rails - 如何让 rufus-scheduler 与部署到 Heroku 的 Rails 应用程序一起工作?

ruby-on-rails - Michael Hartl 教程第 6 章 - 语法错误

ruby - RVM 安装提示 'bison' 在 OSX 中不可用

ruby-on-rails - 如何重构 RSpec 文件中的辅助方法?

ruby-on-rails - 如何创建这个 `through``关联?

ruby - 如何让 Nokogiri 的 SAX 解析器不那么严格?

ruby - double * (splat) 运算符做什么

ruby - Magento - 在单个 XML-RPC 调用中获取多个产品的详细信息