2016-11-21 4 views
5

मैं रूबी के लिए नया हूँ, और मैं एक प्रोग्राम है जो दिए गए तार और सरणियों के लिए स्वरूपण automates बनाने की कोशिश कर रहा हूँ। एक ऑटोफॉर्मेट फ़ंक्शन जिसे मैं समझने की कोशिश कर रहा हूं वह सरणी के लिए एक है। तो चलो कहते हैं कि मैंएक रूबी सरणी को एक साफ कॉलम स्ट्रिंग में बदलें?

myArray = ["a", "b", "c"] 

नीचे दिए गए उदाहरण की तरह एक सरणी है और मैं इसे एक columnized स्ट्रिंग में बदलने के लिए इतना है कि puts myString

`1) a` 
`2) b` 
`3) c` 

कैसे मैं यह कर के बारे में जाना होगा दे देंगे चाहते हैं? सबसे नज़दीकी चीज जो मैं पा सकता हूं वह .each का उपयोग कर रहा है जो मैं नहीं चाहता हूं, मेरे पास प्रत्येक पंक्ति एक अलग प्रविष्टि नहीं हो सकती है। यह सभी लाइन ब्रेक के साथ एक स्ट्रिंग होना है।

myArray = ["a", "b", "c"] 

myStr = myArray.map.with_index(1) { |el, i| "#{i}) #{el}" }.join("\n") 
puts myStr 

आउटपुट:

किसी भी मदद

+0

क्या | मैं, जे | "# {I + 1}) # {j}"}। में शामिल होने के ("\ n") ' –

उत्तर

9

आप .map.with_index साथ उपयोग कर सकते हैं की सराहना की जाएगी, अग्रिम धन्यवाद

1) a 
2) b 
3) c 
इस `myArray.each_with_index.map {बारे में
+0

ओपी के उपयोग के मामले के लिए आप' # {i + 1} 'चाहते हैं, लेकिन यह एक महान जवाब है। –

+1

आह अच्छा पकड़ - धन्यवाद। – Anthony

+0

कोई चिंता नहीं। आपका जवाब काफी सुरुचिपूर्ण है। –

संबंधित मुद्दे