Angularjs 如何根据给定的信息查找数组对象?

Angularjs 如何根据给定的信息查找数组对象?,angularjs,Angularjs,我在AngularJS控制器中有一个数组,如下所示: $scope.persons = [{name:'Joey', age:'27'},{name:'Lucy', age:'22'}] function getAge(name) { for (var i = 0; i < $scope.persons.length; i++) { var person = $scope.persons[i]; if (person.name === name) {

我在AngularJS控制器中有一个数组,如下所示:

$scope.persons = [{name:'Joey', age:'27'},{name:'Lucy', age:'22'}]
function getAge(name)
{
  for (var i = 0; i < $scope.persons.length; i++)
  {
     var person = $scope.persons[i];
     if (person.name === name)
     {
        return parseInt(person.age, 10);
     }
  }

  return undefined;
}

我有一个名字“Lucy”,我怎样才能在控制器中得到这个名字的年龄(不是HTML)?

如果您想在作用域中循环:

$scope.persons = [{name:'Joey', age:'27'}, {name:'Lucy', age:'22'}]

function getAge(name) {
    angular.forEach($scope.persons, function (value, index) {
        if (value.name === name) {
            return parseInt(value.age, 10);
        }
    });
    return undefined;
}
HTML方式:

<div ng-app="myApp" ng-controller="MainCtrl">
    <table>
        <tr ng-repeat="person in persons">
            <td>Name: {{person.name}} Age: {{person.age}}</td>
        </tr>
    </table>
</div>

只需在阵列上循环并检查,如下所示:

$scope.persons = [{name:'Joey', age:'27'},{name:'Lucy', age:'22'}]
function getAge(name)
{
  for (var i = 0; i < $scope.persons.length; i++)
  {
     var person = $scope.persons[i];
     if (person.name === name)
     {
        return parseInt(person.age, 10);
     }
  }

  return undefined;
}
函数getAge(名称)
{
对于(变量i=0;i<$scope.persons.length;i++)
{
var person=$scope.persons[i];
如果(person.name==name)
{
返回parseInt(person.age,10);
}
}
返回未定义;
}

这有几个警告——如果你有重复,你只会得到第一个,并且它在线性时间内运行。如果您控制数据源,最好使用JS对象/hashmap/dictionary/您想叫它什么都行。

我在这里创建了一个plunk,它概括了一个结果,只包含年龄和多个结果

这也可以在过滤器内实现,该过滤器记录在以下位置:


这不会根据OP问题进行任何筛选。OP还说他们想在控制器中检索..不是html@charlietfl更新为包含筛选器。我喜欢这个,因为它可以容纳多个同名的人。