【发布时间】:2016-06-28 14:19:46
【问题描述】:
我正在尝试在后续 json 上调用 uniq 方法,以便它只返回基于 employee_id 的唯一结果
# Json array
a ={
results: [
{
employee: {
name: "A",
employee_id: "A-00016",
title: 1
}
},{
employee: {
name: "A",
employee_id: "A-00016",
title: 2
}
},{
employee: {
name: "C",
employee_id: "C-00017",
title: 3
}
}
]
}
# Calling uniq on a
a.uniq { |p| p.values_at(:employee_id) }
但是,我只得到这个结果
{
results: [
{
employee: {
name: "A",
employee_id: "A-00016",
title: 1
}
}
]
}
而不是我想要的
{
results: [
{
employee: {
name: "A",
employee_id: "A-00016",
title: 1
},{
employee: {
name: "C",
employee_id: "C-00017",
title: 3
}
}
]
}
我是否使用正确的方法来输出我想要的结果?
【问题讨论】:
-
我建议您这样做:
a[:results].uniq!但您的第一个实例为 title=1,第二个实例为 title=2。因此,ruby 会首先将两者视为不同。
标签: ruby-on-rails arrays ruby json hash