arrays - 如何根据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)
解决方案
您可以按如下方式拆分数组:
my_arr = [121, 23, 46, 91, 38, 140]
indxs = [1, 2, 4]
my_arr.values_at(*indxs)
# => [23, 46, 38]
推荐阅读
- python - 应用数据框方法后 numpy 数组末尾的额外数据类型
- c# - 如何从另一个类中的一个类中的属性更改触发事件?
- ios - 如何找到链接到 stdlibc++ 的依赖项?
- javascript - 动态填充两个对象之间的空间
- python - 约束可能值的 Python 类型提示友好类型
- reactjs - 如果显示单个帖子,如何检查内部布局?
- php - webpack-dev-server 代理 GET 请求不起作用,只能 POST
- javascript - Javascript Discord Bot 在输出中提及作者
- python - 将 1-D x、y、z 向量转换为 2D 网格
- python - 将二进制数据包转换为 ASCII 整数