Ruby通过索引(子数组)访问多个数组元素

19

我有一个数组和一个包含第一个数组特定元素索引的数组。如何最好地从第一个数组获取这些元素?

我现在正在尝试:

result = []
indexes.each { |current| result << my_array[current] }

但应该有更好的方法..

1个回答

44
你可以使用 Array#map
indexes.map { |i| my_array[i] }

甚至更好的解决方法是使用Array#values_at

my_array.values_at(*indexes)

在这里,星号符号将数组提取为参数,传递给方法。


1
我知道我错过了某些东西 10 倍 :) - bliof
2
顺便说一下,values_at 是最快的。根据基准测试结果,它比 mappush 快约 2 倍,尽管它不太“人性化”。 - Alexander Gorg

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