如何通过Ruby中的索引从Array获取多个值

时间:2014-06-02 12:43:33

标签: ruby arrays

有一个数组a = %w(a b c d e),希望按索引获取第二个和最后一个值。

我可以按a[1], a[-1]获取值,但我需要写两次a。 有没有办法像a.at(1, -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 >