有一个数组a = %w(a b c d e)
,希望按索引获取第二个和最后一个值。
我可以按a[1], a[-1]
获取值,但我需要写两次a
。
有没有办法像a.at(1, -1)
一样获得数组?
答案 0 :(得分:8)
是的可能。使用Array#values_at方法。
返回一个数组,其中包含与给定选择器对应的self元素。选择器可以是整数索引或范围。
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]
以下是您的示例: -
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 >