私はまだ ruby の初心者であり、このメソッドを正確に使用するinject
方法を学ぼうとしています。
このメソッドを使用してinject
、文字の配列とその外観を特定の文字列で次のように返そうとしています。
def sorting(str)
str.split("").uniq.map { |letter|
[letter, str.split("").inject(0) { |sum, char| sum + 1 if letter == char }]
}
end
p sorting("aaabdbbcccaaabcacba")
欲望の結果は次のようになります。
[["a", 8], ["b", 5], ["d", 1], ["c", 5]]
残念ながら、次のエラーが表示されます: undefined method '+' for nil:NilClass
。
私は何を間違っていinject
ますか?また、その合計の利点を使用してそれを解決するにはどうすればよいですか?