ハッシュに含まれるキーや値を配列として取得する

作成されたハッシュオブジェクトからはキーを指定することで同じ要素の値を取得することができますが、キーと値をそれぞれ配列の形でまとめて取得することもできます。ここでは Ruby でハッシュオブジェクトからキーの一覧や値の一覧を配列として取得する方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 19 日更新)

キーの一覧を配列として取得する

ハッシュオブジェクトに含まれるキーの一覧を配列として取得するには、 Hash クラスで用意されている keys メソッドを使います。

オブジェクト.keys

ハッシュオブジェクトに含まれるキーを要素とする配列オブジェクトを返します。

具体的には次のように記述します。

h = {"Lemon" => 100, "Orange" => 150}
array = h.keys

上記では、ハッシュに含まれるキーの「Lemon」と「Orange」を要素として持つ配列オブジェクトが作成されます。

値の一覧を配列として取得する

ハッシュオブジェクトに含まれる値の一覧を配列として取得するには、 Hash クラスで用意されている values メソッドを使います。

オブジェクト.values

ハッシュに含まれる値を要素とする配列オブジェクトを返します。

具体的には次のように記述します。

h = {"Lemon" => 100, "Orange" => 150}
array = h.values

上記では、ハッシュに含まれる値の「100」と「150」を要素として持つ配列オブジェクトが作成されます。

キーと値のペアの一覧を配列として取得する

ハッシュオブジェクトに含まれるキーと値のペアを 1 つの配列として作成し、その配列を要素として持つ配列として取得するには、 Hash クラスで用意されている to_a メソッドを使います。

オブジェクト.to_a

この場合、ハッシュに含まれるキーと値は次のように配列として取得されます。

[[key1, values1], [key2, value2], ...]

ハッシュの要素であるキーと値を 1 つの配列として作成し、その配列を 1 つの要素とする配列を作成して返します。

具体的には次のように記述します。

h = {"Lemon" => 100, "Orange" => 150}
array = h.to_a

上記では、["Lemon, 100]と["Orange", 150]の2つの配列を要素として持つ配列オブジェクトが作成されます。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

h = {"Lemon" => 100, "Orange" => 150, "Banana" =>250}
puts(h)

puts()

puts("keysメソッド");
key_array = h.keys
p(key_array)

puts()

puts("valuesメソッド");
value_array = h.values
p(value_array)

puts()

puts("to_aメソッド")
array = h.to_a
p(array)

下記のように実行して下さい。

ハッシュに含まれるキーや値を配列として取得

-- --

Ruby でハッシュオブジェクトからキーの一覧や値の一覧を配列として取得する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。