Как отсортировать массив массивов в порядке возрастания - PullRequest
0 голосов
/ 28 марта 2019

Информация в массиве:

scores = %w[ScoreA ScoreB ScoreC ScoreD ScoreE ScoreF ScoreG ScoreH ScoreI ScoreJ]

должна быть представлена ​​в порядке возрастания результатов игры в гольф.

Может ли кто-нибудь помочь отсортировать выходные данные в порядке возрастания?

golf = scores.map do |score_number|
  print "Enter the score for #{score_number}:"
  [score_number, gets.to_i]
end

puts golf.sort

Ответы [ 2 ]

4 голосов
/ 28 марта 2019

Просто используйте Array#sort с блоком

golf.sort { |a, b| a.last <=> b.last }

или Enumerable#sort_by

golf.sort_by { |a| a.last }

Второй вариант можно сократить , используя Proc

golf.sort_by(&:last)
0 голосов
/ 28 марта 2019

Просто используйте Array#sort с блоком

golf.sort { |x, y| x[1] <=> y[1] }
=> [["ScoreH", 1], ["ScoreB", 3], ["ScoreD", 4], ["ScoreF", 9], ["ScoreA", 10], ["ScoreJ", 23], ["ScoreG", 45], ["ScoreC", 67], ["ScoreI", 87], ["ScoreE", 88]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...