根据阵列选择对象



我有一个Movie列表和一个电影类型数组。大多数电影只有一种类型,但有些电影有两种类型,比如"Drama""Comedy"。我需要选择匹配一个或多个类别的所有电影。例如,我希望查询选择"Drama""Comedy"的电影。我做了这个

@movies.select { |mov| mov.genres.include? ['Drama', 'Comedy'] }

但是这个select似乎是排他性的:它搜索同时是"Drama""Comedy"的电影。是否有办法在一行中完成,或者我是否应该遍历所有类型?

有。

query = %w[Drama Comedy]; @movies.reject{|e| (e.genres & query).empty?}

最新更新