我想从角度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
中答案 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);
答案 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}}