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

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

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

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

Q&A

解決済

2回答

1326閲覧

配列に入っている要素とハッシュのkeyが一致していれば、一致しているハッシュのバリューを出力したい。

terate

総合スコア103

Ruby

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

0グッド

0クリップ

投稿2016/06/07 06:33

配列aryに入っている要素とハッシュに入っているkeyが一致しているか調べ、
一致していたら一致しているもののhashのvalueを出力したいです。
どのようにしたら良いでしょうか?
※下記では要素数が少ないため、目視でも一致しているものが判断出来ますが目視で確認出来ない程、たくさんの要素があるものと仮定しています。

ary = [‘あ’,’え']

hash = {'あ' => 'aaa','い' => 'iii','う' => 'uuu','え' => 'eee','お' => 'ooo'}

#期待する出力結果
aaa
eee

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

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

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

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

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

guest

回答2

0

puts hash.select {|k| ary.include?(k) }.values
は、如何でしょう?

これは、
puts ary.map {|e| hash[e] }.compact
とは、すこし挙動が異なります。

x.rb

ary = ['あ','え'] hash = {'あ' => 'aaa','い' => 'iii','う' => 'uuu','え' => 'eee','お' => 'ooo'} puts hash.select {|k| ary.include?(k) }.values puts '---------' puts ary.map {|e| hash[e] }.compact puts '---------' # 'え' => nil としている hash = {'あ' => 'aaa','い' => 'iii','う' => 'uuu','え' => nil,'お' => 'ooo'} puts hash.select {|k| ary.include?(k) }.values puts '---------' puts ary.map {|e| hash[e] }.compact puts '---------'

実行結果:

$ ruby x.rb aaa eee --------- aaa eee --------- aaa --------- aaa ---------

投稿2016/06/07 15:42

katoy

総合スコア22324

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

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

0

ベストアンサー

ruby

1puts ary.map {|e| hash[e] }.compact

投稿2016/06/07 06:41

thinca

総合スコア1864

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

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

terate

2016/06/07 08:27

迅速にありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問