ruby-on-rails - Ruby/rails 数组填充空项

标签 ruby-on-rails ruby arrays

假设我有一个像这样的数组:

[["abc","zxy","fgh"], ["fgj","xxy"], ["eee", "aaa", "bbb", "hhh"]]

我想要一个数组,其中包含每个子数组的所有元素,加上附加的空(或默认)项,直到最大子数组的长度。

例如,这将是:

[["abc","zxy","fgh", ""], ["fgj","xxy", "", ""], ["eee", "aaa", "bbb", "hhh"]]

有什么想法吗?

最佳答案

将每个数组映射到一个新数组,其初始大小为所有数组的最大值,当没有值时回退到默认值。

array = [["abc","zxy","fgh"], ["fgj","xxy"], ["eee", "aaa", "bbb", "hhh"]]
max_size = array.map(&:size).max
array.map { |a| Array.new(max_size) { |i| a[i] || '' } }
#=> [["abc", "zxy", "fgh", ""],
#    ["fgj", "xxy", "", ""],
#    ["eee", "aaa", "bbb", "hhh"]]

请注意,如果您的初始(子)数组中有一个 nil,这将用一个空字符串 '' 替换它。

关于ruby-on-rails - Ruby/rails 数组填充空项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14785189/

相关文章:

ruby-on-rails - 更改索引页 - Ruby on Rails

ruby-on-rails - 结合两个查询的结果并按 created_at 排序? [ rails 3]

ruby - PubSubHubbub 用于 Ruby 博客 (Merb)

ruby - 将 Ruby 程序作为 Windows 服务运行?

Java战舰检查命中位置

ruby-on-rails - 部署到Heroku时出现ActionView错误,在本地可以正常运行

ruby-on-rails - Ruby:如何通过instance_eval运行这个 block ?

c++ - 如何将可变大小的指针数组作为参数传递给函数

c - 将动态数组传递给 C 中的函数

ruby-on-rails - 原始 SQL 插入远程 ruby​​ on rails 数据库