2016-06-11 15 views
-3

Wie aus Array mit Zahlen:konvertieren Anzahl Array String-Array

a = [4,1,3] 

make-Array:

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

So jede Zahl entspricht in einer Zelle der Sterne betragen

+0

Diese Frage zeigt keine Anstrengung auf Seiten des OP zu versuchen, zu lernen, wie die Frage selbst zu beantworten. Die Frage fragt nach einer Kodierungslösung, spezifiziert jedoch nicht klar, welche Sprache anders als in den Tags verwendet werden soll. Sollte dies überhaupt gepostet werden, wäre es unter http://codegolf.stackexchange.com/ – mkrufky

+1

passender. Ein fehlender Aufwand ist kein stichhaltiger Grund. Aus diesem Grund stimme ich offen zu lassen. Siehe auch [Eine enge Abstimmung ist kein Super-Downvote] (http://meta.gamedev.stackexchange.com/questions/2115/a-close-vote-is-not-a-super-downvote) –

Antwort

4

Sie verwenden können map wie folgt:

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

Es kann auch sein geschrieben als 'a.map (&? *. method (: *))' '(siehe http://stackoverflow.com/questions/23695653/can-you-supply-arguments-to-the-mapmethod-syntax-in- Rubin) –

+1

@ MladenJablanović: Ja, kann es sein. Allerdings wird es für jemanden, der neu in Ruby ist, etwas kompliziert aussehen. Da es eine Erläuterung von "? *" Erfordert, die eine Zeichenkette sein wird und dann die Multiplikationsmethode innerhalb von "map" aufruft, die auf das Element/den Wert einer bestimmten Iteration angewendet wird. Also, es einfach halten. Danke für den Link trotzdem. – Surya

0

Wenn Sie in Ordnung sind mit Array-Inhalt ersetzt wird, dann nach wird es tun:

a.fill {|i| "*" * a[i]} 
#=> ["****", "*", "***"]