LoginSignup
4
4

More than 5 years have passed since last update.

hashを比較したい

Posted at

diffとかいうメソッドが使えない?

要件上、いま書いているcookbookの中でhashの比較をする必要が出てきて、ググっているとhash.diffとかいうメソッドが使えるらしい記事を見つけたけど kitchen testしてみたらそんなメソッドは存在しない、と怒られた。

とりあえずif文とかeach文とかを使いまわせば比較できる。

testhash = { "sushi" => "chutoro", "niku" => "stake", "neko" => "koban" }
testhash2 = {"niku" => "stake", "neko" => "koban", "sushi" => "chutoro", "yama" => "kawa", "kaiware" => "daikon" }
commontest = {}
difftest = {}

testhash2.each do | k,v |
  if testhash.include?(k) && testhash[k] == v
    commontest.update(k => v)
  else
    difftest.update(k => v)
  end
end

p commontest
p difftest

共通な要素と差分の要素を一応ゲットできることはできる。

{"niku"=>"stake", "neko"=>"koban", "sushi"=>"chutoro"}
{"yama"=>"kawa", "kaiware"=>"daikon"}

でもこんな面倒でしたっけ?わたしが勉強不足なだけでしょうか、、、、

4
4
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4