我正在尝试使用find循环查找数组以查找并返回特定的id。 这是我的结构:
{
"employees": [
{
"emp_id": "1",
"tutorials": [
{
"id": "test1"
},
{
"id": "test2"
},
{
"id": "test3"
},
{
"id": "test4"
},
{
"id": "test5"
}
]
}
]
}
所以基本上我试图看看上面的结构是否包含'test3'的教程id并返回它。(即在这种情况下返回'test3')
我可以使用map的组合得到所需的结果并找到如下:
my_tutorial = employees.map { |employee|
employee.tutorials.find { |tutorial|
tutorial.id == 'test3'
}
}.first
my_tutorial
但我想知道是否有更好的方法使用find。我尝试了以下但它返回ruby对象而不是id。
employees.find { |employee|
employee.tutorials.find { |tutorial|
tutorial.id == 'test3'
}
}
答案 0 :(得分:0)
这是我使用find做的工作。不确定它是否更好:
my_id = employees.find { |employee|
employee.tutorials.find { |tutorial|
tutorial.id == 'test3'
}
}
my_id.tutorials.first.id
答案 1 :(得分:0)
如果您只需要获取第一条记录,请执行以下操作:
employees[0].tutorials.detect {|r| r.id == 'test3' }