首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ruby中返回指示数组中最大整数到最小整数位置的索引

如何在Ruby中返回指示数组中最大整数到最小整数位置的索引
EN

Stack Overflow用户
提问于 2020-01-27 23:19:29
回答 2查看 64关注 0票数 3

假设我有一个包含9个元素的唯一整数数组。

代码语言:javascript
复制
array = [3,5,7,9,2,4,8,1,6] 

如何返回一个索引数组,从大到小告诉我原始整数数组的位置?

代码语言:javascript
复制
index_of_largest_to_smallest = [3,6,2,8,1,5,0,4,7]

所以这会告诉我最大的数字在位置3,第二大的数字在位置6,等等。

我尝试过array.sort,但它将数组从大到小排序。我也尝试过array.each_with_index,但无法让它返回另一个数组。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-27 23:24:34

通过each_with_indexsortmaplastreverse

代码语言:javascript
复制
[3,5,7,9,2,4,8,1,6].each_with_index   #=> [[3, 0], [5, 1], [7, 2], [9, 3], [2, 4], [4, 5], [8, 6], [1, 7], [6, 8]]
                   .sort              #=> [[1, 7], [2, 4], [3, 0], [4, 5], [5, 1], [6, 8], [7, 2], [8, 6], [9, 3]]
                   .map(&:last)       #=> [7, 4, 0, 5, 1, 8, 2, 6, 3]
                   .reverse           #=> [3, 6, 2, 8, 1, 5, 0, 4, 7]
票数 9
EN

Stack Overflow用户

发布于 2020-01-28 00:05:23

代码语言:javascript
复制
array.each_index.sort_by { |i| -array[i] }
  #=> [3, 6, 2, 8, 1, 5, 0, 4, 7]

请参阅Array#each_indexEnumerable#sort_by的表单。请注意,当没有给定块时,Array#each_index会返回一个枚举数。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59933969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档