尝试在Ruby中查找数组中最长的字符串

尝试在Ruby中查找数组中最长的字符串,ruby,Ruby,如何在ruby中找到数组中最长的名称。以下是我尝试过的: people = ["john", "clark", "stan", "mike", "nick", "devon"] def find_longest_name(people) longest_name = nil longest_name_length = -1 people.each do |friend| if friend.length > longest_name_length lon

如何在ruby中找到数组中最长的名称。以下是我尝试过的:

people = ["john", "clark", "stan", "mike", "nick", "devon"]


def find_longest_name(people)
  longest_name = nil
  longest_name_length = -1
  people.each do |friend|
    if friend.length > longest_name_length
      longest_name = frined
      longest_name_length = friend.length
    end
  end
 return longest_name
end
puts "#{longest_name_length}"
我得到一个错误,说我有一个未定义的变量

试试这个

people.max_by(&:length)
你在这一行把
friend
错放进了
friend

longest_name = frined
最多

people.map(&:length).max
最低限度

people.map(&:length).min
如果您想要最大字符串的长度

h = {}
people.map{|a| h[a]= a.length}
h.key(h.values.max)

friend
!=<代码>朋友您遇到了哪个错误?请阅读整个错误,它会告诉您a)在哪里可以找到未定义的变量,b)变量的确切名称。看看这个名字。您是否1000000%确定这是变量的名称?在
put“{longest\u name\u length}”中,在方法定义中定义了
longest\u name\u length
。将无法从外部访问。