2010-05-23 7 views
10

array ürününü ActionScript 3 ile ayırmaya çalışıyorum.Nesnelerin bir dizisini ActionScript 3'te sıralama

dizi şu şekildedir:

var arr:Array = new Array(); 
arr.push ({name:"John", date:"20080324", message:"Hi"}); 
arr.push ({name:"Susan", date:"20090528", message:"hello"}); 

Ben Array.sort(...) yöntemi ile bir şeyler yapabiliriz?

+0

Öğeleri nasıl sıralamak istiyorsunuz? – JeremyFromEarth

+0

Önemli değil, sadece nesne dizilerini sıralamak için bir yöntem arıyor, tarih veya isim için sıralama olabilir, Kenny'nin cevabı mükemmel, mükemmel çalışıyor – vitto

cevap

15

Ne yapar? Örneğin, ada göre sıralayın, sonra tarih, Array.sortOn kullanın. Eğer diğer nesneleri veya daha karmaşık mantığı varsa, dizeleri ve numaraları gibi alanlar için çalışacak olan sortOn kullanarak dışında

arr.sortOn(['name', 'date']) 
5

, bir sort() yönteme işlevini karşılaştırmak geçebileceği.

Karşılaştırma işleviniz, sıralama işlevinizle dizininizi sıralamak için gereken kadar çok kez çağrılır. Her seferinde dizinin iki nesnesinin işlevine geçecektir. Burada, bu iki nesne sıralamak belirlemek ve dönerek sıralama işlevine söylemek:

  • negatif bir sayı: İlk nesne ikincisi
  • pozitif bir sayı önce gelirse: eğer ikinci nesne ilk önce
  • 0'dan gelir: her iki nesne de aynı sıralamaya sahipse .