将数组合并为哈希并使用重复项
如何保留重复并维护订单? 例如:
keys = [1, 2, 1] values = ["a", "b", "c"] Hash[keys.zip(values)] # => {1=>"c", 2=>"b"}
正如贾斯汀和卢卡所说:
哈希不允许重复键。
你能做的最好就是拥有一系列值,在这个 SO问题中找到了这个解决方案:
Hash.new.tap { |h| keys.zip(values).each { |k, v| (h[k] ||= []) << v } } # => {1=>["a", "c"], 2=>["b"]}
如果将keys数组用作散列键,则无法保留重复项。 它们必须是独一无二的