使用ES6解决方案
对于仍在阅读此答案的用户,如果您使用的是ES6,则将find
方法添加到数组中。因此,假设相同的集合,解决方案将是:
const foo = { "results": [
{
"id": 12,
"name": "Test"
},
{
"id": 2,
"name": "Beispiel"
},
{
"id": 3,
"name": "Sample"
}
] };
foo.results.find(item => item.id === 2)
我现在将完全使用该解决方案,因为它与角度或任何其他框架的联系较少。纯Javascript。
角解(旧解)
我旨在通过执行以下操作来解决此问题:
$filter('filter')(foo.results, {id: 1})[0];
一个用例示例:
app.controller('FooCtrl', ['$filter', function($filter) {
var foo = { "results": [
{
"id": 12,
"name": "Test"
},
{
"id": 2,
"name": "Beispiel"
},
{
"id": 3,
"name": "Sample"
}
] };
// We filter the array by id, the result is an array
// so we select the element 0
single_object = $filter('filter')(foo.results, function (d) {return d.id === 2;})[0];
// If you want to see the result, just check the log
console.log(single_object);
}]);
柱塞:http ://plnkr.co/edit/5E7FYqNNqDuqFBlyDqRh?p=preview