我正在尝试检查包含一个或多个匹配字符串的字符串数组。
目前我正在通过使用 if 语句来做到这一点 - 不好,但它有效 - 但是现在我正在寻找一种更像 Ruby 的方式来做到这一点。
row[:datapoints].each do |data|
if data[:direction].include? "Beusselstr"
data[:image] = "category-1"
end
if data[:direction].include? "Ostkreuz"
data[:image] = "category-1"
end
if data[:direction].include? "Westend"
data[:image] = "category-2"
end
if data[:direction].include? "1)S Gr"
data[:image] = "category-3"
end
end
而不是这个,我想将匹配的字符串存储在一个数组中。为了让它更复杂一点,我实际上有不同类别的匹配术语及其自己的结果操作(请参阅 data[:image] 值的类别特定分配)。
category_1_keywords = ["Beusselstr","Ostkreuz"]
category_2_keywords = ["nefeld Bhf","Greifswalder","Westend"]
category_3_keywords = ["1)S Gr"]
imagecategories = {:category_1 => category_1_keywords,:category_2 => category_2_keywords,:category_3 => category_3_keywords}
使用这样的匹配数组(imagecategories )过滤数组(row[:datapoints])会是什么样子?