ruby,在2d数组中找到最大尺寸的子数组

时间:2016-09-10 03:55:14

标签: arrays ruby

说我有一个2D数组

arraylist = [ [1,2,3], [78], [101,1,2,91] ]

如何使用max_by方法查找存储最多整数的子数组的索引?

2 个答案:

答案 0 :(得分:3)

arraylist.each_index.max_by { |i| arraylist[i].size }
  #=> 2

如果你想要所有最大数组的索引(如果有一个平局),你可以编写以下内容。

arraylist = [ [1,2,3,4], [78], [101,1,2,91] ]
mx_size = arraylist.map(&:size).max
  #=> 4
arraylist.each_index.select { |i| arraylist[i].size == mx_size }
  #=> [0, 2] 

答案 1 :(得分:2)

你可以试试这个

arraylist.index(arraylist.max_by{|x| x.length})

没有尝试但应该工作