如何在Ruby中通过索引从数组中获取多个值

7

有一个数组 a = %w(a b c d e),想要通过索引获取第二个和最后一个值。

我可以通过 a[1], a[-1] 获取值,但是需要两次写入 a。 有没有一种像 a.at(1, -1) 这样的方法来获取数组?


3
你有没有查看数组(Array)的文档?你的答案在那里。 - Mark Thomas
1个回答

16

可以实现。使用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 > 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接