मेरे पास एक सरणी और एक हैश है
एल = [] H = {3 => "a", 2 => "b", 1 => "c"}
और इसलिए मैं तत्वों की संख्या को पुन: दर्ज करूँगा और तत्व की संख्या n को प्राप्त करने के लिए और उस तत्व को एक n n बार जोड़ देगा
परिणाम
एल = ["ए", "ए", "ए", "बी", "बी", "सी"]
इंजेक्शन के साथ इसे लिखने का एक अच्छा तरीका क्या है (या अन्य तरीके जो मैं अक्सर रूबी कोड में देखता हूं)?
उत्तर:
उत्तर № 1 के लिए 16array = hash.flat_map { |k,v| [v]*k }
जवाब के लिए 2 № 2
@ डेविड का जवाब आपकी जरूरतों के लिए हाजिर है। सामान्य तौर पर, आप एक वस्तु जोड़ सकते हैं ओ एक मौजूदा सरणी के लिए n एक के माध्यम से समय:
# Modify the array in-place, or…
my_array.concat( [o]*n )
# …alternatively create a new modified array
new_array = my_array + [o]*n