Angularjs 如何根据给定的信息查找数组对象?
我在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) {
$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更新为包含筛选器。我喜欢这个,因为它可以容纳多个同名的人。