There is a Array a = %w(a b c d e), and want to get second and last values by indexes.
I can get values by a[1], a[-1], but I need write a twice.
Is there a way to get a Array by like a.at(1, -1)?
Yes possible. Use Array#values_at method.
Returns an array containing the elements in self corresponding to the given selector(s).The selectors may be either integer indices or ranges.
a = %w{ a b c d e f }
a.values_at(1, 3, 5)          # => ["b", "d", "f"]
a.values_at(1, 3, 5, 7)       # => ["b", "d", "f", nil]
Here is from your example :-
2.1.0 :001 > a = %w(a b c d e)
 => ["a", "b", "c", "d", "e"] 
2.1.0 :002 > a.values_at(1,-1)
 => ["b", "e"] 
2.1.0 :003 > 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With