我遇到了一个有趣的情况。如果哈希数组中的某个特定值是重复的,我想从该数组中删除该值。下面是我正在使用的结构的一个例子:
[
{
"PCDBPart": {
"Category": {
"ID": 22,
"Name": "Wiper and Washer"
}
},
"Position": {
"Name": "Right",
"PCDBPositionID": 12,
"PositionID": 10
}
},
{
"PCDBPart": {
"Category": {
"ID": 22,
"Name": "Wiper and Washer"
}
},
"Position": {
"Name": "Right",
"PCDBPositionID": 12,
"PositionID": 10
}
},
{
"PCDBPart": {
"Category": {
"ID": 24,
"Name": "Wiper and Washer"
}
},
"Position": {
"Name": "Right",
"PCDBPositionID": 2,
"PositionID": 4
}
}
]
我的问题是
Position
经常重复,使数组变大。我想返回一个数组,该数组的哈希值由
PositionID
它们包含。
我试着用
my_array.uniq { |h| h.dig(:Position, :PositionID)}
,但这似乎只返回了一个值:
[
{
"PCDBPart": {
"Category": {
"ID": 22,
"Name": "Wiper and Washer"
}
},
"Position": {
"Name": "Right",
"PCDBPositionID": 12,
"PositionID": 10
}
},
]
以下是所需的输出:
[
{
"PCDBPart": {
"Category": {
"ID": 22,
"Name": "Wiper and Washer"
}
},
"Position": {
"Name": "Right",
"PCDBPositionID": 12,
"PositionID": 10
}
},
{
"PCDBPart": {
"Category": {
"ID": 24,
"Name": "Wiper and Washer"
}
},
"Position": {
"Name": "Right",
"PCDBPositionID": 2,
"PositionID": 4
}
}
]
有人对如何进行有什么建议吗?