2016-04-06 14 views
0

'daki nesnelerin listesinden en yüksek tarihe sahip olan tek bir nesneyi angularJs'ye yeni getirin ve nesnenin listesinden maksimum tarihli nesneyi almak istediğinizde., angularJs

Ben Bu alana göre artan düzende dizinizi sıralamak bir, tesisi

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

yardım olabilir http://stackoverflow.com/questions/18798568/get- max-ve-min-of-min-of-min-of-javascript-dizi –

+0

O olası çoğaltılabilir [AngularJS direktif kapsamındaki '@' ve '=' arasındaki fark nedir?] (http://stackoverflow.com/ sorular/14050195 /-ne-farkını-ve-in-yönerge-kapsam-in-angularjs) –

cevap

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

tek müşteri almak ve ayarlamak istediğiniz

mülkiyet createdon (tarih) ile müşterilerin listesi var createdon.

Sonra son öğeyi seçebilirsiniz:

customers[customers.length - 1] 

ve dolayısıyla CurrentCustomer ayarlayın:

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

Kullanım angularjs orderByFilter

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

kullanabilirsiniz kütüphaneler gibi Müstehcen, Ramda veya Lodash. Lodash kullanıldığı bir örnek Ramda kullanarak aşağıda verildiği gibi ve Link

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

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

bir örnek bulunabilir:

var diff = function(a, b) { return a.id > b.id; }; 
R.sort(diff, [ 
    { id: 4 }, 
    { id: 2 }, 
    { id: 7 }, 
    {id: 5} 
]);