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