从angularJs中的对象列表中获取具有最高日期的单个对象

时间:2016-04-06 06:24:53

标签: angularjs

angularJs的新手,想要从对象列表中获取最大日期对象。

我拥有属性CreatedOn(日期)

的客户列表

我想获得单个客户并设置属性

customer.CurrentCustomer = true; //// when customer having max date

3 个答案:

答案 0 :(得分:1)

customers.sort(function(a,b) { 
    return new Date(a.CreatedOn).getTime() - new Date(b.CreatedOn).getTime() 
});

这将按字段CreatedOn按升序对数组进行排序。

然后你可以选择最后一项:

customers[customers.length - 1]

因此设置了CurrentCustomer:

customers[customers.length - 1].CurrentCustomer = true;

答案 1 :(得分:1)

使用angularjs orderByFilter

function MyCtrl($scope, orderByFilter) {
$scope.customer = orderByFilter($scope. customers, 'CreatedOn')[0];
$scope.customer.CurrentCustomer=true
}

答案 2 :(得分:1)

您可以使用Underscore,Ramda或Lodash等库。使用Lodash的示例可以在下面和Link

中找到
menu item

使用Ramda的一个例子:

var users = [
  { 'user': 'fred',   'age': 48 },
  { 'user': 'barney', 'age': 36 },
  { 'user': 'fred',   'age': 40 },
  { 'user': 'barney', 'age': 34 }
];

_.sortBy(users, ['user', 'age']);