我有这个功能:
medIntCategory = MedicalInterventionCategory.find_by_category_text(category.category.text)
但是现在我有一个名为类别的类别列表。
我想为每个类别执行上面的代码并返回一个medIntCategories列表,但没有重复。
有没有一种简单的方法可以做到这一点,因为我只处理整数?
简单来说:
categoryList = []
for each category in categories do
categoryList += MedicalInterventionCategory.find_by_category_text(category.category.text)
end
但重复检查
答案 0 :(得分:1)
@result=Array.new
##assuming that it returns an array
medIntCategory = MedicalInterventionCategory.find_by_category_text(category.category.text)
##get the first category obtained
@result << medIntCategory
if medIntCategory.present?
medIntCategory.each do |m|
##add in same array only if not present
if !@result.include?(m)
@result << m.find_by_category_text(c.category.text)
end
end
##return a unique value array
@result.flatten.compact.uniq unless @result.blank?
end
希望帮助
答案 1 :(得分:1)
这听起来像是Array#map
和Array#uniq
的作业:
category_list = categories.map{|category|
MedicalInterventionCategory.find_by_category_text(category.category.text)
}.uniq
答案 2 :(得分:0)
我认为这会起作用
category_list = []
categories.each do |category|
category_list << MedicalInterventionCategory.find_by_category_text(category.category.text).distinct
end