coding for food

[Ruby] exercise _ Map By Name

silveryen 2022. 8. 6. 04:36

Write a method map_by_name that takes in an array of hashes and returns a new array containing the names of each hash.

 

def map_by_name(arr)

end


pets = [
  {"type"=>"dog", "name"=>"Rolo"},
  {"type"=>"cat", "name"=>"Sunny"},
  {"type"=>"rat", "name"=>"Saki"},
  {"type"=>"dog", "name"=>"Finn"},
  {"type"=>"cat", "name"=>"Buffy"}
]
print map_by_name(pets) #=> ["Rolo", "Sunny", "Saki", "Finn", "Buffy"]
puts

countries = [
 {"name"=>"Japan", "continent"=>"Asia"},
 {"name"=>"Hungary", "continent"=>"Europe"},
 {"name"=>"Kenya", "continent"=>"Africa"},
]
print map_by_name(countries) #=> ["Japan", "Hungary", "Kenya"]
puts

my code

def map_by_name(arr)
  new_arr = []
  
  arr.map do |hash|
  hash.each do |key, value|
   if key == "name"
      new_arr << hash[key]
   end
  end
  end
  return new_arr
end

solution

def map_by_name(arr)
  return arr.map { |hash| hash["name"] }
end