Я определяю метод, который должен принимать массив String, разбивать его на пары по 2 слова и сортировать их.
Однако сортировка работает не так, как я ожидаю. Он сортирует «s» перед «m» (для пары «my say» он ставит «say» перед «my»).
def sorted_pairs(array)
puts "original: #{array}"
new_array = array.each_slice(2).to_a
puts "sliced: #{new_array}"
new_array.sort #this line does nothing?
puts "sorted: #{new_array}"
return new_array
end
#test
words = %w(say my name say my name)
puts sorted_pairs(words)
expected: [["my", "say"], ["name", "say"], ["my", "name"]]
got: [["say", "my"], ["name", "say"], ["my", "name"]]
sort! не будет работать, так как он будет сортировать пары в соответствии с элементом внутри каждой пары (не сортируя саму пару).
expected: [["my", "say"], ["name", "say"], ["my", "name"]]
got: [["my", "name"], ["name", "say"], ["say", "my"]]