Find an object in a list based on attribute value in Angular JS

angularjs, javascript

Solution

You can use the $filter service:

angular.module('app', [])

function ParentCtrl($scope, $filter){
    var lst = [{name : "foo", value : "fooValue"}, {name: "bar", value: "barValue"}, { name: 'foo', value: 'something else'}];
    var newTemp = $filter("filter")(lst, {name:'foo'});
    console.log(newTemp);
}

jsFiddle: http://jsfiddle.net/W2Z86/

Problem

Is there a simple way to find an object in a list based on an attribute value, without looping on the list? For example given a list like the following : ``` var lst = [ { name: "foo", value: "fooValue" }, { name: "bar", value: "barValue" } ]; ``` Is there some kind of "`find`" method, such that `lst.find("name", "foo")` would return the object which has a "`name`" attribute with the value "`foo`"?

Original source