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

広告

作成されたハッシュオブジェクトに含まれるキーや値だけを取り出すことができます。取り出された複数のキーや値は配列として取得します。キーだけを取得するには「keys」メソッド、値だけを取得するには「values」メソッド、キーと値の両方を取得するには「to_a」メソッドを使用します。

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

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

オブジェクト.keys

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

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

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

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

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

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

オブジェクト.values

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

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

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

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

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

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

オブジェクト.to_a

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

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

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

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

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

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

サンプルプログラム

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

test8-1.rb

#! ruby -Ku
require "kconv"

hash = {"Lemon" => 100, "Orange" => 150, "Banana" => 250}
p hash
print("¥n")

print(Kconv.tosjis("keysメソッド¥n"));
key_array = hash.keys
p key_array

print(Kconv.tosjis("valuesメソッド¥n"));
value_array = hash.values
p value_array

print(Kconv.tosjis("to_aメソッド¥n"));
array = hash.to_a
p array

上記のプログラムを「test8-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

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

( Written by Tatsuo Ikura )