数组中的最大值(值是数组对象中的属性)
highest value in array (value is attribute in array object)
我有一个对象数组,一个对象的例子是:
$scope.object = {
Title: 'object1',
Description: 'lorem ipsum',
Value: 123
};
所以我的数组将由几个具有这些属性的对象组成,如何在我的数组中找到具有最高"值"的对象?
我已经研究了其他问题,比如这样,但它们是关于包含纯值的数组,而不是对象。
我真正想要的是在我的 html 中找到具有最高值的对象,也许使用 angular $filter,如下所示:
ng-repeat="item in objectArray | filter: filterHere "
但它也可以与函数一起使用,现在我是这样做的,但我根本不喜欢这个解决方案:
var value = 0;
angular.forEach($scope.objectArray, function(object){
if(object.Value > value){
value = object.Value;
$scope.itemToSeeInView = object;
}
});
因此,如果对象的值大于要在视图中查看的var value
项设置为该对象,如果视图中的$filter不起作用,是否可以改进此功能?
如果只想显示数组中的最小值/最大值,则可以使用 orderby 筛选器,并将其与 limitTo 筛选器组合。 这看起来像:
<tr ng-repeat="p in vm.persons | orderBy:'someValue' |limitTo:1" >
或者在你自己的例子的情况下
ng-repeat="item in objectArray | orderBy:'Value': true | limitTo:1"
我创建了一个小的 plnkr,所以你可以看到它的实际效果。plunk是我上面描述的扩展版本,让我们切换一些内容。如果我投入太多,请给我留言。我会相应地清理它。
您可以使用内置的排序方法
$scope.objectArray.sort(function(a,b) { return a.Value < b.Value})[0]
恐怕您可以使用$filter获得优化的解决方案,但这是快速解决方案。
$scope.friends = [
{name:'John', age:25},
{name:'Mary', age:35},
{name:'Mike', age:18},
{name:'Adam', age:35},
{name:'Julie', age:23}
];
var arr = [];
angular.forEach($scope.friends, function(item) {
arr.push(item["age"]);
});
$scope.result = arr.sort().reverse()[0]; // Highest value.
杰斯菲德尔演示
当您使用 ES6(带有转译器)时,您可以使用以下代码:
const friends = [
{name:'John', age:25},
{name:'Mary', age:35},
{name:'Mike', age:18},
{name:'Adam', age:35},
{name:'Julie', age:23}
];
const maxObject = friends.find(friend => !friends.some(item => item.age > friend.age));
相关文章:
- 如何筛选对象的数组属性
- 如何在mongodb(mongose)中覆盖子文档的数组属性
- 如何按对象数组中的数组属性进行筛选
- 基于其他属性查询多维数组属性
- 循环访问 JS 数组 + 数组属性
- AngularJS:观察数组属性
- JSON对象中的数组属性通过foreach更新-更新所有键
- Javascript - 使用数组属性定义对象
- Ember.js with EmberFire Object - 如何使用数组属性
- 我无法访问由开发人员工具中可见的回调填充的 javascript 对象数组属性内容
- 设置对象数据结构数组属性
- 按子数组属性/值对 JavaScript 对象数组进行排序
- 对象的数组属性
- 如何访问 JavaScript 对象上的数组属性
- 使用 jQuery 深层复制对象数组属性值
- 访问并迭代模板内Kendo UI Listview的数组属性
- 主干模型数组属性更改和更改事件侦听器不总是启动
- 在json数组属性中循环
- 通过js中的数组属性方法进行迭代
- 无法清除主干模型数组属性