Ruby嵌套每个do +数组连接
*新手道歉..
以下代码:
dates = ['Transaction_Date','Renewal_Date'] dateoptions = ['Year','Month','Date'] word1 = "Amount" dates.each do |x| puts word1 + " by " + x end
返回
Amount by Transaction_Date Amount by Renewal_Date
我希望结果是日期和日期选项的串联,就像这样
Amount by Transaction_Date (Year) Amount by Transaction_Date (Month) Amount by Transaction_Date (Date) Amount by Renewal_Date (Year) Amount by Renewal_Date (Month) Amount by Renewal_Date (Month)
我正在考虑做一个嵌套的“每个做”但我仍然不知道如何解决两个数组的连接。
感谢您的意见
您需要使用嵌套的each
:
dates = ['Transaction_Date','Renewal_Date'] dateoptions = ['Year','Month','Date'] word1 = "Amount" dates.each do |d| dateoptions.each do |option| puts "#{word1} by #{d} (#{option})" end end
或者您可以使用Array#product
dates.product(dateoptions) do |d, option| puts "#{word1} by #{d} (#{option})" end
您可以使用Array#product
方法:
dates.product(dateoptions).each do |date, option| puts "#{word1} by #{date} (#{option})" end
dates = ['Transaction_Date','Renewal_Date'] dateoptions = ['Year','Month','Date'] word1 = "Amount" dates.each do |x| dateoptions.each do |y| puts "#{word1} by #{x} (#{y})" end end
2.1.2 :009 > dates.each do |e| 2.1.2 :010 > dateoptions.each do |o| 2.1.2 :011 > puts "#{word1} by #{e} (#{o})" 2.1.2 :012?> end 2.1.2 :013?> end Amount by Transaction_Date (Year) Amount by Transaction_Date (Month) Amount by Transaction_Date (Date) Amount by Renewal_Date (Year) Amount by Renewal_Date (Month) Amount by Renewal_Date (Date)