首页 > 解决方案 > 如何根据Ruby中的索引从数组中获取多个值?

问题描述

我们有一个数组,比如说:

my_arr = [121, 23, 46, 91, 38, 140]

我们还有索引数组:

indxs = [1, 2, 4]

我知道values_at方法,但它不接受数组,但是,它可以接受多个值,证明:https ://ruby-doc.org/core-2.5.1/Array.html#method-i-values_at

也许你可以给我一个线索如何处理values_at。提前致谢!

编辑:我们有 2 个答案,所以我做了一个基准测试(1000 次迭代,array.size = 20,indexes.size = 4)

                  user     system      total        real
values_at       0.004502   0.000000   0.004502 (  0.004476)
map[i]          0.005878   0.000000   0.005878 (  0.006968)

标签: arraysruby

解决方案


您可以按如下方式拆分数组:

my_arr = [121, 23, 46, 91, 38, 140]
indxs = [1, 2, 4]
my_arr.values_at(*indxs)
# => [23, 46, 38]

推荐阅读