Ruby beginner here。この質問には最近来た:なぜこのコードが原因でしょうか?ArrayとArrayのArrayErrorの比較が失敗しました
私の友人ジョンと私は "Fat to Fit Club(FFC)"のメンバーです。ジョンは、毎月メンバーの加重を含むリストが公開され、毎月彼がリストの最後であることが心配されています。これは彼が最も重いことを意味します。 私はリストを作成したので、私は彼に言った: "もう心配しないで、私はリストの順序を変更する"。 「重み」を数に帰することが決定されました。数字の重みは、今からその数字の合計になります。 たとえば、99は "weight" 18を、100は "weight" 1を持つので、リスト100は99より前に来るでしょう。通常の順序でFFCメンバーの重みを持つ文字列を与えると、 "weights"これらの数字のうち?
私はこの問題を解決しようとした:
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>
私はちょっと読んだことがあります。この問題は、Enumerable#sort_byとnil値を比較することによって発生する可能性があることがわかりましたが、ここではそうではないはずです(?)
すばらしいですご了承ください
例外が報告されるたびに、それが発生した行を含めてください。 'string'がどのように見えるかを示す必要があります。 –
私は含まれているはずの別の情報は、これらの質問が出てくるウェブサイト(コードワー)を介して自分のコードを入力している間だけこのエラーが出るということです。ここに、私がhttp://imgur.com/a/aqRkPを意味するイメージを示す画像があります。 – hellothere1
編集ボタンがあることを忘れないでください。 –