[ruby] 配列の要素の出現回数をinjectメソッドで

配列の要素の出現頻度をもとめるcountメソッドを実装しましょう。

実装内容

  • countメソッドは文字列を要素とした配列を受け取り、要素名をキーに出現回数を値としたハッシュを返すメソッドです。

実行例

  • count([“a”, “b”, “c”, “a”, “c”, “c”]) -> {“a”=>2, “b”=>1, “c”=>3}
  • count([“a”, “b”, “c”, “a”, “b”, “c”]) -> {“a”=>2, “b”=>2, “c”=>2}

できなかった。

覚えてしまおう。

def count(array)
hash = Hash.new(0)
p array.inject(Hash.new(0)){|hash, a| hash[a] += 1; hash}
end

count([“a”, “b”, “c”, “a”, “c”, “c”]) の返り値 {“a”=>2, “b”=>1, “c”=>3}

codeprepの答え。もっと簡単だったのは

def count_up(ary)

    hash = Hash.new(0)

    ary.each do |item|

     hash[item] += 1  

  end

 return hash

end

でした。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)