如何在数组中找到ruby的整数/最大整数并返回索引位置?

时间:2009-11-01 08:46:00

标签: ruby

这是我到目前为止所拥有的

ages   = [20,19,21,17,31,33,34]
names  = [Bob, Bill, Jill, Aimee, Joe, Matt, Chris]

如何使用年龄并应用一种方法从中提取最大的整数并了解其索引位置。原因是我想知道名字中哪个人是最老的。并行赋值阻止了我在数组上执行.sort的能力,因为它改变了与名称相关联的元素的位置。

请包含代码以仔细考虑,

2 个答案:

答案 0 :(得分:12)

ages.zip(names).max

答案 1 :(得分:3)

names[ages.index(ages.max)]

它的作用是找到年龄的最大值(ages.max),得到第一个匹配值的索引,以及年龄,并用它来获得相应的人。请注意,如果两个或更多人的年龄相同,那么它只会给你数组中第一个人的名字。

编辑:为了解决你的评论,我不确定你为什么需要这种并行数组结构(如果你只有一个person对象,那就容易多了)。不过,您可以尝试以下方式:

indices = []
ages.each_with_index { |age, i| indices << i if age < 20 }
indices.each { |i| puts names[i] }