質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

271閲覧

rubyのコードを考えています

rubist

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2022/08/19 06:33

前提

rubyのコードを考えています

実現したいこと

park_data = [ ["作業1 公園の草を刈る", 6], ["作業2 噴水の修理", 6], ["作業3 トイレの修理", 2], ["作業4 滑り台の修理", 4], ["作業5 駐車場のライン引き", 4], ["作業6 フラフープの修理", 2], ["作業7 ステージ作業", 6], end

該当のソースコード

先ほどのdataを下記のように時間別でカウントし、作業内容を配列でまとめたいです。
上記のdataを下記のようにするコードを考えているのですが実力不足でわかりません。どうかよろしくお願いします。

[ {:hour=>6, :count=>3, :contents=>["作業1 公園の草を刈る","作業2 噴水の修理","作業7 ステージ作業"]}, {:hour=>4, :count=>2, :contents=>["作業4 滑り台の修理","作業5 駐車場のライン引き"]}, {:hour=>2, :count=>2, :contents=>["作業3 トイレの修理","作業6 フラフープの修理"]}, ]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Array#group_byを使うと、配列の要素をある条件で区分してハッシュとできます。

ruby

1park_data = [ 2 ["作業1 公園の草を刈る", 6], 3 ["作業2 噴水の修理", 6], 4 ["作業3 トイレの修理", 2], 5 ["作業4 滑り台の修理", 4], 6 ["作業5 駐車場のライン引き", 4], 7 ["作業6 フラフープの修理", 2], 8 ["作業7 ステージ作業", 6] 9] 10 11p park_data.group_by(&:last) 12 13# => 14{ 156=>[["作業1 公園の草を刈る", 6], ["作業2 噴水の修理", 6], ["作業7 ステージ作業", 6]], 162=>[["作業3 トイレの修理", 2], ["作業6 フラフープの修理", 2]], 174=>[["作業4 滑り台の修理", 4], ["作業5 駐車場のライン引き", 4]] 18}

あとはこの結果のハッシュをmapして、得たい出力の形に整えるだけです。

投稿2022/08/19 06:40

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rubist

2022/08/20 03:37

返信ありがとうございます。 具体的にはmapして、得たい出力の形に整えるがよくわからない状況です。 よければそちらも併せてご教授いただけないでしょうか?
maisumakun

2022/08/20 05:02

試しにコードを書いてみたりはしましたか?
rubist

2022/08/20 05:49

現在できているコードがこちらになります。 group_data = park_data.group_by(&:last) group_data.map {|key,value| puts ":hour=>#{key}" "," ":count=>#{value.count}" "," ":content=>#{value}"} 正直無理やり作っている感じで納得いってません。
maisumakun

2022/08/20 09:48

> 正直無理やり作っている感じで納得いってません。 (文字列で作っていることを除けば)その調子で問題ないと思います。
rubist

2022/08/21 03:37

了解です!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問