我有三个列表:标题、子标题和图片链接。
每个列表是一个数组,每个列表可以包含0个或多个项。
我想用这种格式创建每个组合的排列:

[
  {headline: X1, subheadline: Y1, image_url: Z1}
  {headline: X1, subheadline: Y2, image_url: Z1}
  {headline: X1, subheadline: Y3, image_url: Z1}
  {headline: X1, subheadline: Y1, image_url: Z2}
  ...
]

唯一的问题是,对于任何丢失的项,我希望它是一个空字符串''
我第一个“愚蠢”的解决办法是。。。
headlines.each do |headline|
  subheadlines.each do |subheadline|
    image_urls.each do |url|
      {headline: headline, subheadline: subheadline, image_url: url}
    end
  end
end

但唯一的问题是,如果其中一个内部数组是空的,比如说subheadline,而不是添加空白并继续迭代,那么它将在那里停止,并且不会处理所有的置换。
什么方法或方法可以帮助我?
谢谢!

最佳答案

在开始之前你可以

headlines << '' if headlines.empty?
subheadlines << '' if subheadlines.empty?
image_urls << '' if image_urls.empty?

10-06 14:56