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