如何将对象与数组 #ruby 进行比较



>我在 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

它不起作用,怎么办?

例如,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

最新更新