2011-06-08 35 views
4

我想用卡組中的每張卡製作一個數組,因此它會是[「Ac」,「Ad」,「Ah」,「As」,「 Kc「,...],但順序並不重要。乘以兩個數組的內容(不是陣列本身)

難道注射可以用來解決這個問題嗎?這已經儘可能地接近我了。

cards = ["A", "K", "Q", "J", "T", "9", "8", "7", "6", "5", "4", "3", "2"] 
suits = ["c", "s", "d", "h"] 
ruby-1.9.2-p180 :025 > cards.inject(suits) { |suit, card| suit.map{|s| "#{card}#{s}"}} 
=> ["23456789TJQKAc", "23456789TJQKAs", "23456789TJQKAd", "23456789TJQKAh"] 

回答

5

這是你的目標嗎?

cards.map { |card| 
    suits.map { |suit| "#{card}#{suit}" } 
}.flatten 
+0

想要使用注入,但是這是我的一個解決方案。由於某種原因,每當我看到一個案例,注入對我有意義,我只是最終使用地圖。 – 2011-06-08 19:50:30