Как сравнить объект с массивом #ruby - PullRequest
0 голосов
/ 06 мая 2018

У меня есть массив в Json Parson, как это:

{"id" => "cat", "name" => "Kitty"}, {"id" => "dog", "name" => "Pop"}

Я хочу сравнить с именем объекта ввода

@pet =ARGV[0]
my_list.each do |list|
      if list[name] == @pet
            puts " The ID of pet: #{"id"} "
      end
end

Это не работает, как это сделать?

1 Ответ

0 голосов
/ 06 мая 2018

Например, my_list равно:

my_list = [{"id" => "cat", "name" => "Kitty"}, {"id" => "dog", "name" => "Pop"}]

Затем вы можете найти соответствующее значение, используя Enumerable#find:

@pet = ARGV[0]
my_list = [{"id" => "cat", "name" => "Kitty"}, {"id" => "dog", "name" => "Pop"}]   
pet_object = my_list.find { |object| object["name"] == @pet }
puts " The ID of pet: #{pet_object["id"]} " if pet_object

Или вы можете изменить свой код, который также будет работать:

@pet = ARGV[0]
my_list = [{"id" => "cat", "name" => "Kitty"}, {"id" => "dog", "name" => "Pop"}]
my_list.each do |list|
  if list["name"] == @pet
    puts " The ID of pet: #{list["id"]} "
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...