Ruby beginner здесь. Последнее последнее:Зачем нужен этот код: ArgumentError сравнение массива с массивом не удалось
Мой друг Джон и я являемся членами «Fat to Fit Club (FFC)». Джон беспокоится, потому что каждый месяц публикуется список с весами членов, и каждый месяц он является последним в списке, что означает, что он самый тяжелый. Я тот, кто устанавливает список, поэтому я сказал ему: «Больше не беспокойтесь, я изменю порядок списка». Было принято решение приписать «вес» цифрам. Вес числа будет теперь от суммы его цифр. Например, у 99 будет «вес» 18, 100 будет иметь «вес» 1, поэтому в списке 100 поступит до 99. Если строка с весами членов FFC в обычном порядке, вы можете дать эту строку, упорядоченную по «весам», из этих чисел?
Я попытался решить эту проблему с:
def order_weight(strng)
new_strng = strng.split(" ").map! {|x| x.split(//)}.map! {|x| x.reduce {|sum, input| sum.to_i + input.to_i}}
output = strng.split(" ").zip(new_strng)
output.sort_by! {|x, y| [y, x]}
output.reduce("") {|memo, input| memo << input[0] + " "}.chop
end
order_weight("2000 10003 1234000 44444444 9999 11 11 22 123")
#=> "11 11 2000 10003 22 123 1234000 44444444 9999"
Это, кажется, работает хорошо (если есть более простой способ, пожалуйста, дайте мне знать), но моя проблема в том, что я получаю: #<ArgumentError: comparison of Array with Array failed>
I я читал немного, и я видел, что эта проблема может быть вызвана сравнением значений nil с Enumerable # sort_by, но насколько я знаю, это не должно быть здесь (?)
Любая помощь будет Великий ly appreciated
Всякий раз, когда вы сообщаете об исключении, укажите строку, на которой она была поднята. Вам также нужно показать, как выглядит 'string'. –
Я предполагаю, что другая часть информации, которую я должен был включить, заключается в том, что я получаю эту ошибку только при вводе своего кода через веб-сайт, из которого возникают эти вопросы (кодовые слова). Вот изображение, чтобы показать, что я имею в виду http://imgur.com/a/aqRkP. – hellothere1
Не забывайте, что в вашем распоряжении кнопка редактирования. –