/ / एन तत्वों को एक सरणी में जोड़ना - रूबी, सरणियां

एन तत्वों को एक सरणी में लागू करना - रूबी, सरणियां

मेरे पास एक सरणी और एक हैश है

एल = [] H = {3 => "a", 2 => "b", 1 => "c"}

और इसलिए मैं तत्वों की संख्या को पुन: दर्ज करूँगा और तत्व की संख्या n को प्राप्त करने के लिए और उस तत्व को एक n n बार जोड़ देगा

परिणाम

एल = ["ए", "ए", "ए", "बी", "बी", "सी"]

इंजेक्शन के साथ इसे लिखने का एक अच्छा तरीका क्या है (या अन्य तरीके जो मैं अक्सर रूबी कोड में देखता हूं)?

उत्तर:

उत्तर № 1 के लिए 16
array = 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