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

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

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

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

Q&A

解決済

3回答

464閲覧

ハッシュの中の配列で同じ日付のものをまとめたい

ssk

総合スコア332

Ruby

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

0グッド

0クリップ

投稿2022/05/01 15:35

編集2022/05/01 15:50

rubyでハッシュの中にある同じ日付をまとめることはできますか?
以下のような形と書いてありますが、他の扱いやすい形であれば変換方法を教えていただけますと幸いです。

ruby

1{ 2 [Sun, 01 May 2022, "pending"]=>1, 3 [Fri, 06 May 2022, "denied"]=>1, 4 [Fri, 06 May 2022, "none"]=>2, 5} 6 7↓ 以下のような形にしたいです。 8 9[ 10 Sun, 01 May 2022 => [["pending", 1]] 11 Fri, 06 May 2022 => [["denied", 1], ["none", 2]] 12]

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

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

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

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

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

guest

回答3

0

foo.map{|(date,status),count| [date,[status,count]]}. group_by{|date,ary| date}.map{|date,ary| [date,ary.map{|date,ary|ary} ]}.to_h

投稿2022/05/01 23:17

winterboum

総合スコア23376

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

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

0

ベストアンサー

ruby

1hash1 = { 2 ["Sun, 01 May 2022", "pending"]=>1, 3 ["Fri, 06 May 2022", "denied"]=>1, 4 ["Fri, 06 May 2022", "none"]=>2, 5} 6 7p hash1 8p hash1.each_with_object(Hash.new([])){|((k1, k2), v), h| h[k1] += [[k2, v]]} 9 10# 11{ 12 ["Sun, 01 May 2022", "pending"]=>1, 13 ["Fri, 06 May 2022", "denied"]=>1, 14 ["Fri, 06 May 2022", "none"]=>2 15} 16 17{ 18 "Sun, 01 May 2022"=>[["pending", 1]], 19 "Fri, 06 May 2022"=>[["denied", 1], ["none", 2]] 20}

投稿2022/05/01 23:09

編集2022/05/01 23:29
melian

総合スコア19849

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

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

0

出来ますけど、質問文のコードはRubyプログラムとしては不正ですね。

Ruby

1foo = { ~~~~ } 2 3p foo.group_by{|(x,y,z),w| [x,y]} 4.map{|k,v| [k,v.map{|(x,y,z),w| [z,w]}]}.to_h

投稿2022/05/01 16:46

otn

総合スコア84712

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問