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

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

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

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

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

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

3012閲覧

複数の配列をハッシュの特定の中身を見て結合したい

terate

総合スコア103

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

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

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2018/07/25 08:41

編集2018/07/25 08:45

ruby

1 2price_ary =[ 3 {:date=>"0625", :price=>200}, 4 {:date=>"0726", :price=>100}, 5 {:date=>"0829", :price=>300} 6 ] 7 8shop_ary =[ 9 {:date=>"0625", :shop=>"A"}, 10 {:date=>"0726", :shop=>"B"}, 11 {:date=>"0829", :shop=>"C"} 12 ] 13 14sweet_ary = [ 15 {:date=>"0625", :sweet=>"choko"}, 16 {:date=>"0726", :sweet =>"juice"}, 17 {:date=>"0829", :sweet=>"cake"} 18 ] 19 20上記3つの配列を下記のようにまとめたいです。 21([:date]が同じならばという条件式で結合したいです。) 22どのようにしたら良いでしょうか? 23 24total = [ 25 {:date=>"0625",:price=>200,:shop=>"A",:sweet=>"choko"}, 26 {:date=>"0726",:price=>100,:shop=>"B",:sweet =>"juice"}, 27 {:date=>"0829",:price=>300,:shop=>"C",:sweet=>"cake"} 28 ] 29

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

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

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

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

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

guest

回答2

0

ベストアンサー

ruby

1total_hash = Hash.new{|hash,key| hash[key] = {}} 2 3[price_ary, shop_ary, sweet_ary].each{|ary| 4 ary.each{|item| 5 total_hash[item[:date]].merge! item 6 } 7} 8total = total_hash.values

投稿2018/07/25 14:26

asm

総合スコア15147

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

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

terate

2018/07/26 06:07

助かりました!ありがとうございます!
guest

0

要素数はそう多くないでしょうから、要素数が万単位とかになると効率は悪いと思いますが、分かりやすさ優先で。
:dateは同じ物が確かにあると言う前提です。

Ruby

1total = price_ary.map do |price| 2 price.merge(shop_ary.find{|h| h[:date]==price[:date]}) 3 .merge(sweet_ary.find{|h| h[:date]==price[:date]}) 4end

投稿2018/07/25 11:46

otn

総合スコア84710

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

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

terate

2018/07/26 06:07

大変勉強になります!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問