2010-05-23 13 views
10

Sto cercando di ordinare uno array di objects con ActionScript 3.Ordinamento di una matrice di oggetti in ActionScript 3

L'array è come questo:

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

posso fare qualcosa con Array.sort(...) metodo?

+0

Come si desidera ordinare gli elementi? – JeremyFromEarth

+0

Non importa, solo cercando un metodo per ordinare array di oggetti, potrei ordinare per data o nome, la risposta di Kenny è perfetta, funziona perfettamente – vitto

risposta

15

Fare cosa? Se stai provando ad es. ordina per nome, quindi data, usa Array.sortOn.

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

Altro che usare sortOn, che lavorerà per i campi come stringhe e numeri, se si dispone di altri oggetti o logica più complessa, si potrebbe passare una funzione di confronto al metodo sort().

La funzione di confronto verrà chiamata dalla funzione di ordinamento tante volte quanto necessario per ordinare l'array. Ogni volta, passerà alla tua funzione due degli oggetti degli array. Qui, si determina come questi due oggetti ordinare e dire che per la funzione di ordinamento restituendo:

  • un numero negativo: se il primo oggetto precede la seconda
  • un numero positivo: se il secondo l'oggetto viene prima del primo
  • 0: se entrambi gli oggetti hanno lo stesso ordine .
Problemi correlati