2013-02-02 19 views
13

द्वारा एकाधिक सरणी elemenets तक पहुँचने के लिए मेरे पास एक सरणी है और मेरे पास पहले सरणी से कुछ तत्वों के अनुक्रमण के साथ एक सरणी है। तत्वों को पहली सरणी से प्राप्त करने का सबसे अच्छा तरीका क्या है?रूबी इंडेक्स (उप सरणी)

मैं कर रहा हूँ:

result = [] 
indexes.each { |current| result << my_array[current] } 

लेकिन एक बेहतर तरीका होना चाहिए ..

उत्तर

31

आप Array#map उपयोग कर सकते हैं:

indexes.map { |i| my_array[i] } 

या और भी बेहतर, Array#values_at

my_array.values_at(*indexes) 

जहां * प्रतीक सरणी को तर्क में प्राप्त करता है जो विधि को पारित किया जाता है।

+1

मुझे पता था कि मुझे कुछ 10x याद आ रहा था :) – bliof

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