我有一个像:
这样的数组[
#<ArtLookup ARL_ART_ID: 1248525, ARL_SEARCH_NUMBER: "4502696", ARL_KIND: 3, ARL_BRA_ID: 569, ARL_DISPLAY_NR: "4502696", ARL_DISPLAY: nil, ARL_BLOCK: 1, ARL_SORT: 1>,
#<ArtLookup ARL_ART_ID: 1248525, ARL_SEARCH_NUMBER: "5009285", ARL_KIND: 3, ARL_BRA_ID: 525, ARL_DISPLAY_NR: "5009285", ARL_DISPLAY: nil, ARL_BLOCK: 1, ARL_SORT: 1>,
#<ArtLookup ARL_ART_ID: 1248525, ARL_SEARCH_NUMBER: "5016786", ARL_KIND: 3, ARL_BRA_ID: 525, ARL_DISPLAY_NR: "5016786", ARL_DISPLAY: nil, ARL_BLOCK: 2, ARL_SORT: 1>,
...
]
如何从此哈希数组中删除重复值?
arr.uniq
没有帮助我。
我需要删除ARL_DISPLAY_NR
字段的重复项。我怎么能这样做?
答案 0 :(得分:0)
这不是哈希的意思,你可能会以O(n)
的复杂性来实现这一目标。要求这样做可能表明您的模型中存在设计问题。
那就是说,你可以使用类似的东西:
hash = {key1: 'val1', key2: 'val2', key3: 'val3', repkey: 'val1'}
uniquevalues = {}
hash.each do |key, value|
uniquevalues[value] = key
end
获取唯一值。
{“val1”=&gt;:repkey,“val2”=&gt;:key2,“val3”=&gt;:key3}
答案 1 :(得分:0)
假设您可以从ARL_DISPLAY_NR
的{{1}}实例中检索art
字段,如下所示:
ArtLookup
然后,您可以根据art[:ARL_DISPLAY_NR]
字段删除重复项:
ARL_DISPLAY_NR
但是,它不保证在原始数组中保留原始顺序。