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)
Angularやその他のフレームワークとはあまり関係がないので、私は今このソリューションに完全に取り組みます。純粋なJavascript。
Angular solution(古いソリューション)
私は次のようにしてこの問題を解決することを目指しました:
$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