Json 从角度为的对象获取具有最大值的元素
找不到关于这个的任何信息 我有一个控制器:Json 从角度为的对象获取具有最大值的元素,json,angularjs,Json,Angularjs,找不到关于这个的任何信息 我有一个控制器: app.controller('StatsCtrl', function ($scope, $http) { $http.get('stats.json').success(function(data) { $scope.stats = data; }); }); stats.json具有: {"lang":{"en":28,"und":1,"ja":9,"es":14,"ru":1,"in":1,"ko":1,"th":1,"ar":1
app.controller('StatsCtrl', function ($scope, $http) {
$http.get('stats.json').success(function(data) {
$scope.stats = data;
});
});
stats.json具有:
{"lang":{"en":28,"und":1,"ja":9,"es":14,"ru":1,"in":1,"ko":1,"th":1,"ar":1}}
我需要的是将
lang
对象中的最大值分配给控制器中的$scope.max
。最好的方法是什么?我建议使用underline.js\uuux.max
:
_.max(list, [iteratee], [context])
返回列表中的最大值。如果提供了一个iteratee函数,它将用于每个值,以生成对值进行排序的标准-如果列表为空,则返回无穷大,因此可能需要一个isEmpty保护
var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.max(stooges, function(stooge){ return stooge.age; });
=> {name: 'curly', age: 60};
我建议使用下划线.js
\uux.max
:
_.max(list, [iteratee], [context])
返回列表中的最大值。如果提供了一个iteratee函数,它将用于每个值,以生成对值进行排序的标准-如果列表为空,则返回无穷大,因此可能需要一个isEmpty保护
var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];
_.max(stooges, function(stooge){ return stooge.age; });
=> {name: 'curly', age: 60};
您可以使用两种本机方法来实现:
$scope.max = Math.max.apply(null, Object.keys(data.lang).map(function(key) {
return data.lang[key];
}));
您可以使用两种本机方法来实现这一点:
$scope.max = Math.max.apply(null, Object.keys(data.lang).map(function(key) {
return data.lang[key];
}));
你想给max赋值(number)还是给max赋值(key)(如“en”、“und”)@user2393267在这种情况下是28。你想给max赋值(number)还是给max赋值(key)(如“en”、“und”)呢?@user2393267在这种情况下是28。把这个添加到控制器中,但我想我遗漏了一些东西,因为它不工作:
app.controller('StatsCtrl',function($scope,$http){$http.get('stats.json').success(function(data){$scope.stats=data;});$scope.max=Math.max.apply(null,Object.keys(data.lang).map(function(key){return data.lang[key];});})代码>哎呀,它正在工作。谢谢<代码>app.controller('StatsCtrl',function($scope,$http){$http.get('stats.json').success(function(data){$scope.stats=data;$scope.max=Math.max.apply(null,Object.keys(data.lang).map(function(key){return data.lang[key];}));})
将此添加到控制器,但我认为我缺少了一些东西,因为它不起作用:app.controller('StatsCtrl',function($scope,$http){$http.get('stats.json').success(function(data){$scope.stats=data;});$scope.max=Math.max.apply(null,Object.keys(data.lang).map(function(key){return data.lang[key];})); });代码>哎呀,它正在工作。谢谢<代码>app.controller('StatsCtrl',function($scope,$http){$http.get('stats.json').success(function(data){$scope.stats=data;$scope.max=Math.max.apply(null,Object.keys(data.lang).map(function(key){return data.lang[key];}));})代码>