[Ruby] रूबी में हैश को फिर से चलाने वाला एक विशिष्ट आउटपुट कैसे प्राप्त करें?


Answers

हैश पर फिर से शुरू करने का सबसे बुनियादी तरीका निम्नानुसार है:

hash.each do |key, value|
  puts key
  puts value
end
Question

मैं रूबी हैश को फिर से शुरू करने वाला एक विशिष्ट आउटपुट प्राप्त करना चाहता हूं।

यह हैश मैं इसे फिर से शुरू करना चाहता हूं:

hash = {
  1 => ['a', 'b'], 
  2 => ['c'], 
  3 => ['d', 'e', 'f', 'g'], 
  4 => ['h']
}

यह वह आउटपुट है जिसे मैं प्राप्त करना चाहता हूं:

1-----

a

b

2-----

c

3-----

d 

e

f

g

4-----

h

रुबी में, मैं अपने हैश के साथ ऐसा आउटपुट कैसे प्राप्त कर सकता हूं?




मेरा एक लाइन समाधान:

hash.each { |key, array| puts "#{key}-----", array }

मुझे लगता है कि इसे पढ़ने में काफी आसान है।




हैश पर कॉलिंग सॉर्ट इसे नेस्टेड सरणी में परिवर्तित करता है और फिर उन्हें कुंजी द्वारा टाइप करता है, इसलिए आपको इसकी आवश्यकता होती है:

puts h.sort.map {|k,v| ["#{k}----"] + v}

और यदि आपको वास्तव में "----" भाग की आवश्यकता नहीं है, तो यह केवल हो सकता है:

puts h.sort