Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择具有最小值的选项_Javascript_Angularjs - Fatal编程技术网

Javascript 选择具有最小值的选项

Javascript 选择具有最小值的选项,javascript,angularjs,Javascript,Angularjs,我有: [{name:'Mary', phone:'555-9876', age:19, date:'2011-06-12T00:00:00.000Z'}, {name:'John', phone:'555-1212', age:10, date:'2011-06-11T00:00:00.000Z'}, {name:'Mike', phone:'555-4321', age:21, date:'2011-07-13T00:00:00.000Z'}, {name:'Adam', phone:'55

我有:

[{name:'Mary', phone:'555-9876', age:19, date:'2011-06-12T00:00:00.000Z'},
{name:'John', phone:'555-1212', age:10, date:'2011-06-11T00:00:00.000Z'},
{name:'Mike', phone:'555-4321', age:21, date:'2011-07-13T00:00:00.000Z'},
{name:'Adam', phone:'555-5678', age:35, date:'2011-05-14T00:00:00.000Z'},
{name:'Julie', phone:'555-8765', age:29, date:'2011-06-15T00:00:00.000Z'}]
我应该创建
,并选择年龄最小的姓名。就我而言——约翰

我的控制器:

function Projects ($scope, $http) {
    $scope.rootEntry = [];
    $http.get('/api/...').success(function(root) {
        $scope.rootEntry = root;
        $scope.selectedRoot = $scope.rootEntry[0].name;
    });
}
和HTML:

<select ng-options="root.age as root.name for root in rootEntry ng-model="selectedRoot">
</select>

在成功处理程序中,遍历
$scope.rootEntry
以查找具有最小年龄的项,并将该值分配给
$scope.selectedRoot
有几种方法,您可以从$filter和orderBy开始 它会在ngRepeat或$filterprovider上给你一个按年龄排序的列表,然后抓取第一个元素

在这里摆弄它-

无需任何测试 这种奇特的方式看起来像这样——但不要相信这段代码

或者,一种更容易理解的方式,至少对我来说,就是一个循环,它会像-

 var ages = [];
 angular.forEach( $scope.rootEntry , function(value, key) {
   ages.push(value.age);
 });
 return Math.min(ages);
但您可能应该跳过使用下划线js-

_.min($scope.rootEntry, function(e){ return e.age; });

在数据中循环并跟踪最低的
age
值是相当简单的。你写代码有困难吗?@Andrewornold,不,很简单。我认为Angular在这方面有一些特殊的功能。Angular有,我在这里做了修改-基本上你可以通过[filter]filter使用/提供过滤器,所以orderByFilter会对你的数组进行排序,max只会是“-age”等@Dylan,太棒了!非常感谢。知道了。非常感谢。我以为Angular有什么特别的东西。
_.min($scope.rootEntry, function(e){ return e.age; });