2016-06-11 60 views
-3

如何從數字數組:轉換數字陣列字符串數組

a = [4,1,3] 

,並使陣列:

s = ["****","*","***"] 

因此,每個編號對應的單元格達的明星

+0

這個問題不顯示在OP的任何努力嘗試學習如何回答自己的問題。該問題要求提供編碼解決方案,但沒有明確指定要在標籤中使用的語言。如果應該發佈此信息,則可能更適合於http://codegolf.stackexchange.com/ – mkrufky

+1

缺乏努力不是有效的緊密原因。出於這個原因,我正在投票開放。另請參閱[關閉投票不是超級Downvote](http://meta.gamedev.stackexchange.com/questions/2115/a-close-vote-is-not-a-super-downvote) –

回答

4

您可以使用map像這樣:

a = [4,1,3] 
s = a.map { |count| '*' * count } 
#=> ["****", "*", "***"] 
+0

它也可以是寫成'a.map(&?*。method(:*))'(參見http://stackoverflow.com/questions/23695653/can-you-supply-arguments-to-the-mapmethod-syntax-in-紅寶石) –

+1

@MladenJablanović:是的,可以。然而,對於Ruby的新手來說,這看起來有點複雜。因爲它需要解釋'* *',它將是字符串,然後調用'map'中的乘法方法,該方法將應用於特定迭代上的元素/值。所以,保持簡單。無論如何,謝謝你的鏈接。 – Surya

0

如果你是好與被替換數組的內容,那麼,下面會做:

a.fill {|i| "*" * a[i]} 
#=> ["****", "*", "***"] 
相關問題