[英]ruby - how to generate the possible sequential combination of letters from an array of strings?
[英]How to get every possible combination of string from array/hash in ruby?
我是初級后端嘗試 ruby。我有這些數據:
people = ["Andy", "Budi", "Charles"]
vehicles = ["Bicycle", "Car", "Bajaj"]
destinations = ["USA", "Bali", "Paradise"]
string_format = %{person} ride %{vehicle} to %{destination}
如何使用 ruby 獲取字符串的所有可能組合? 預計 output 共 27 項(3 x 3 x 3):
1. Andy ride Bicycle to USA
2. Andy ride Bicycle to Bali
3. Andy ride Bicycle to Paradise
4. Andy ride Car to USA
...
27. Charles ride Bajaj to Paradise
代碼應該是可擴展的,因為稍后我們將添加更多數組,例如:
adjectives = ["happily", "sadly"]
string_format = %{destination} has been visited by %{person} using %{his_or_her} %{vehicle} %{adjectives}
您可以使用Array#product
返回包含所有組合的數組:
people.product(vehicles, destinations)
# => [["Andy", "Bicycle", "USA"], ["Andy", "Bicycle", "Bali"], ["Andy", "Bicycle", "Paradise"], ["Andy", "Car", "USA"], ["Andy", "Car", "Bali"], ["Andy", "Car", "Paradise"], ["Andy", "Bajaj", "USA"], ["Andy", "Bajaj", "Bali"], ["Andy", "Bajaj", "Paradise"], ["Budi", "Bicycle", "USA"], ["Budi", "Bicycle", "Bali"], ["Budi", "Bicycle", "Paradise"], ["Budi", "Car", "USA"], ["Budi", "Car", "Bali"], ["Budi", "Car", "Paradise"],["Budi", "Bajaj", "USA"],["Budi", "Bajaj", "Bali"],["Budi", "Bajaj", "Paradise"],["Charles", "Bicycle", "USA"],["Charles", "Bicycle", "Bali"],["Charles", "Bicycle", "Paradise"],["Charles", "Car", "USA"],["Charles", "Car", "Bali"],["Charles", "Car", "Paradise"],["Charles", "Bajaj", "USA"],["Charles", "Bajaj", "Bali"],["Charles", "Bajaj", "Paradise"]]
這可以像這樣用於 output 你的列表:
people.product(vehicles, destinations).each do |person, vehicle, destination|
puts "#{person} ride #{vehicle} to #{destination}"
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.