我正在尝试使用Underscore.js搜索对象数组,但似乎无法定位到我想要的目标。从包含特定值的数组中获取对象
console.log(_.findWhere(response.data, { TaskCategory: { TaskCategoryId: $routeParams.TaskCategory } }));
然而,这是回访undefined
$routeParams.TaskCategory
等于301
这是阵列我寻找内部的对象的一个例子。此数据由data.response
[{
"TaskCategory": {
"TaskCategoryId": 201,
"TaskName": "TaskName"
},
"TaskCount": 1,
"Tasks": [{
"EventTypeId": 201,
"EventName": "Event Driver",
"EventDate": "0001-01-01T00:00:00",
"EventId": "00000000-0000-0000-0000-000000000000",
}]
},
{
"TaskCategory": {
"TaskCategoryId": 301,
"TaskName": "TaskName"
},
"TaskCount": 1,
"Tasks": [{
"EventTypeId": 201,
"EventName": "Event Driver",
"EventDate": "0001-01-01T00:00:00",
"EventId": "00000000-0000-0000-0000-000000000000",
}]
}]
所以代表我想用TaskCategory.TaskCategoryId
数组中的第二个对象,是有可能用它来下划线得到?而不是findWhere
使用过滤器将使用替代在这种情况下'_.where'。他应该使用'_.find'而不是'_.filter'。 – forivall
@forivall哦,当然......谢谢。过滤器将搜索整个集合,而在第一场比赛中找到停止位置。我已更新。 – McGarnagle
谢谢你们,'_.find'完美无缺。我真的需要坐下来和这个图书馆一起周末学习。 – Neil