【发布时间】:2015-02-16 07:12:31
【问题描述】:
我有一个哈希映射数组。它看起来像这样:
params = []
CSV.foreach(......) do
one_line_item = {}
one_line_item[:sku] = "Hello"
one_line_item[:value] = "20000"
params << one_line_item
end
我想检查:sku 是否在这个哈希数组中。我是这样做的:
# Reading new line of csv in a hash and saving it in a temporary variable (Say Y)
params.each do |p|
if p[:sku] == Y[:sku]
next
end
end
我正在遍历 sku 的每个值的完整列表,因此时间复杂度正在折腾 [O(n^2)],不用说它没用了。
有什么方法可以使用include??
如果我可以一次从整个数组中获取与键 :sku 对应的一组值,那将解决我的问题。 (我知道我可以为这些值维护另一个数组,但我想避免这种情况)
参数的一个例子
params = [{:sku=>"hello", :value=>"5000"}, {:sku=>"world", :value=>"6000"}, {:sku=>"Hi", :value=>"7000"}]
【问题讨论】:
-
你能发布一个填充
params的例子吗?
标签: ruby-on-rails ruby arrays hashmap