如何从角度js

时间:2016-01-28 10:24:52

标签: angularjs

我想从角度js中的json获得最大值和最小值 我的json:

{

"data":[

        {
         "name": "ranjith",
         "age": 22
        },
        {
         "name": "rahul",
         "age": 20
        },
        {
         "name": "jinesh",
         "age": 25
        },
        {
         "name": "vishnu",
         "age": 24
        }

       ]

}

和我的控制员: -

var app = angular.module('myApp', ['']);
app.controller('myCtrl', function($scope, data) {

$scope.data = data.data;
$scope.min="";
$scope.max="";

};
});

我想从数组中获取最小值和最大值,并将其存储在变量min和max

5 个答案:

答案 0 :(得分:16)

您只需使用

即可
$scope.min = Math.min.apply(Math,$scope.data.map(function(item){return item.age;}));

$scope.max = Math.max.apply(Math,$scope.data.map(function(item){return item.age;}));

答案 1 :(得分:2)

避免使用第三方库

    for (var index in $scope.data.data)
    {
        var item=$scope.data.data[index];
        if($scope.min==0 && $scope.max==0){
            // set first default element
            $scope.min=item.age;
            $scope.max=item.age;
        }
        else{
            if($scope.min>item.age)
                $scope.min=item.age;
            else if($scope.max<item.age)
                $scope.max=item.age;
        }
    }

答案 2 :(得分:1)

您可以将Underscore.js与angular一起使用,然后在控制器中使用

var ageArr = _.pluck(data.data, 'age');
$scope.min= _.min(ageArr);
$scope.max= _.max(ageArr);

Plunker网址http://run.plnkr.co/plunks/Mw531cqUIHVSorb5kOac/

答案 3 :(得分:0)

1.添加下划线依赖

2.使用以下内容:

//For Maximum Age:
_.max(data, function(itr){ return itr.age; });

/* O/p = {
     "name": "jinesh",
     "age": 25
 }*/

//For Minimum Age:
 _.min(data, function(itr){ return itr.age; });


/* O/p = {
      "name": "rahul",
      "age": 20
    } */

答案 4 :(得分:0)

如果要显示意图,您可以通过以下方式直接到达: {{(data | orderBy:'age')[0].age}}