我正在嘗試使用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