[Ruby]ハッシュ(Hash)のキーを削除するには?

Ruby

どうも、ちょげ(@chogetarou)です。

ハッシュ(Hash)のキー(key)を削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

ハッシュ(Hash)のキー(key)を削除する方法は、2つあります。

deleteメソッド

1つは、deleteメソッドを使う方法です。

まず、ハッシュからdeleteメソッドを呼び出します。

そして、deleteメソッドの引数に削除するキー(key)を指定します。

#hash=対象のハッシュ, key=削除するキー
hash.delete(key)

上記のdeleteメソッドは、呼び出したハッシュ(Hash)から引数のキー(key)を削除します。

使用例

numbers = { 
    "one" => 1, 
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
}

numbers.delete("one")
numbers.delete("three")

puts numbers
出力:
{"two"=>2, "four"=>4, "five"=>5}

delete_ifメソッド

もう1つは、delete_ifメソッドを使う方法です。

まず、ハッシュからdelete_ifメソッドを呼び出します。

delete_ifメソッドに引数を2つ持つブロックを渡します。

delete_ifメソッドのブロックで、削除するキーの条件式を返します。

ブロック内では、第1引数でキーを取得します。

#hash=対象のハッシュ, condition=条件式
hash.delete_if { |key, value| condition }

上記のdelete_ifメソッドは、呼び出したハッシュ(Hash)から条件式で「true」を返したキー(key)を削除します。

使用例

numbers = { 
    "one" => 1, 
    "two" => 2,
    "three" => 3,
    "four" => 4,
    "five" => 5,
}

numbers.delete_if { |key, value| key.length > 3 }

puts numbers
出力:
{"one"=>1, "two"=>2}

まとめ

ハッシュ(Hash)のキー(key)を削除する方法は、2つあります。

  • deleteメソッドを使う方法
    hash.delete(key)
  • delete_ifメソッドを使う方法
    hash.delete_if { |key, value| condition }

コメント

タイトルとURLをコピーしました