2016-03-21 8 views
0

У меня есть эти массивы. И я хочу выбрать только экземпляры с значением :teacher из массива @teachers и поместить их в @filtered_courses.Выберите из массива hash на основе значений из другого массива

@teachers = ["KAP", "CWD"] 
@courses = [ 
    {:gruppnamn=>"ESM15/15MUSINS01Str", :kurskod=>"MUSINS01S", :teacher=>"MWN", :class=>"ESM15", :points=>100.0, :kvot=>nil, :tim=>nil}, 
    {:gruppnamn=>"ESM15/15MUSMUS01", :kurskod=>"MUSMUS01", :teacher=>"KAP", :class=>"ESM15", :points=>100.0, :kvot=>nil, :tim=>nil}, 
    {:gruppnamn=>"Hälsostudion/15år2", :kurskod=>"IDRIDR01", :teacher=>"CWD", :class=>"ESSA", :points=>100.0, :kvot=>nil, :tim=>nil} 
] 
+1

Способ выбрать определенные элементы из массива называется [ 'select'] (http://ruby-doc.org/core-2.3.0/Array. html # method-i-select) – Stefan

ответ

3

Попытка:

@filtered_courses = @courses.select { |x| @teachers.include? x[:teacher] } 
# => [{:gruppnamn=>"ESM15/15MUSMUS01", :kurskod=>"MUSMUS01", :teacher=>"KAP", :class=>"ESM15", :points=>100.0, :kvot=>nil, :tim=>nil}, 
#  {:gruppnamn=>"Hlsostudion/15r2", :kurskod=>"IDRIDR01", :teacher=>"CWD", :class=>"ESSA", :points=>100.0, :kvot=>nil, :tim=>nil}] 
+0

Спасибо! Решила! – Petter

Смежные вопросы