2012-06-20 6 views
6

En AS3, Array.sort() tomaron algunas opciones de clasificación agradables como:AS3 Vector.sort() no tiene opciones de clasificación?

  • Array.DESCENDING - ordena la matriz grande a pequeño
  • Array.RETURNINDEXEDARRAY - devuelve una tabla de índices para que pueda realizar un seguimiento de los cuales artículo consiguió ordenadas donde

Pero, lamentablemente Vector<T>.sort() no es compatible con estas características, y simplemente toma un argumento compareFunction:Function para que pueda escribir su ow n lógica de clasificación.

¿Hay alguna otra manera de obtener rápidamente una matriz indexada ordenada de un vector?

Respuesta

4

RETURNINDEXEDARRAY no funciona en Flash Player 10+. Simplemente devuelve el mismo original Vector<Number>.

A diferencia de una matriz, la opción RETURNINDEXEDARRAY se ignora para el método Vector.sort(). El objeto vectorial devuelto es siempre la referencia del objeto original.

8

Mira la documentación: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Vector.html#sort()

Todavía es posible utilizar esas opciones, pero hay que pasar en el primer parámetro en lugar de la función de comparación.

myVector.sort(Array.DESCENDING|Array.RETURNINDEXEDARRAY); 
+0

Array.RETURNINDEXEDARRAY no funciona para mí. Simplemente devuelve el mismo vector original

+2

Sí, estaba leyendo los comentarios en la página de documentación y encontré esto: "A diferencia de una clase Array, la opción Array.RETURNINDEXEDARRAY parece ignorarse para el método Vector.sort(). objeto es siempre la referencia del objeto original ". –

+0

También tenga en cuenta que el segundo argumento en el método de división no es opcional, a pesar de los documentos. –

Cuestiones relacionadas