如何使用 Ruby 访问和比较这些嵌套数组值?

jbk*_*jbk 2 ruby enumerable comparable

我有这个嵌套数组:

[[1, 2, 3],                                                                   
 [1, 3, 6],                                                                   
 [1, 4, 12],                                                                  
 [1, 5, 5],                                                                   
 [1, 2, 3],                                                                   
 [1, 8, 7],                                                                   
 [2, 3, 3],                                      
 [2, 4, 9],                                      
 [2, 5, 2],                                      
 [2, 8, 4],                                      
 [3, 4, 6],                                      
 [3, 8, 1],                                      
 [5, 8, 2],                                      
 [2, 8, 4],                                      
 [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)

我试图找到一种简洁但可读的方式:

  1. 比较每个嵌套数组内索引位置[2](即每个嵌套数组中的第三个元素)中的值并找到最大值。
  2. 从包含点 1 的最大值的同一嵌套数组中返回索引 [0] 和 [1] 处的相邻值。

我尝试过各种方法,例如,,,,但没有成功#max#max_by#group_by#with_index现在正处于这样一个阶段,我可以从比我更有能力的大脑和程序员那里得到一些启发。

spi*_*ann 6

查找最后一个元素具有最大值的嵌套数组:

input = [[1, 2, 3], [1, 3, 6], [1, 4, 12], [1, 5, 5], [1, 2, 3], [1, 8, 7], [2, 3, 3], [2, 4, 9], [2, 5, 2], [2, 8, 4], [3, 4, 6], [3, 8, 1], [5, 8, 2], [2, 8, 4], [7, 8, 9]]
input.max_by(&:last)
#=> [1, 4, 12]
Run Code Online (Sandbox Code Playgroud)

并且只返回前两个值:

input.max_by(&:last).take(2)
#=> [1, 4]
Run Code Online (Sandbox Code Playgroud)