¿Quieres registrarte?

Cómo ordenar elementos de un Vector en Actionscript 3

Por: Zguillez
22 de Enero del 2009
7273 de clabLevel
Otros artículos de Zguillez
4,367 visitas

Siguiendo con el articulo escrito por M@U sobre la nueva clase Vector de Actionscript 3, donde se preguntaba como ordenar los elementos de un vector, aquí escribo un Tip de como hacerlo.

Para ordenar los elementos de un Vector en realidad se realiza de igual manera que en un Array. Únicamente deberemos escribir una función que compare lo elementos según el orden que nos interese.

El valor que nos ha de devolver la función que realiza la comparación deberá ser:



De manera que si creamos un Vector con 10 numero aleatorios:

Código :

var vector:Vector.<uint> = new Vector.<uint>();
for (var i:int = 0; i < 10; i++)
{
   vector.push(Math.random() * 100);
}
trace(vector); //25,19,69,95,57,78,59,86,2,97


Si ahora lo quisiésemos ordenar de forma ascendente haríamos lo siguiente:

Código :

function ascendente(x:uint, y:uint):int
{
   return (x >= y)?1 :-1;
}
vector.sort(ascendente);
trace(vector); //2,19,25,57,59,69,78,86,95,97


Y lo mismo para ordenarlo de forma descendente:

Código :

function descendente(x:uint, y:uint):int
{
   return (x < y)?1 :-1;
}
vector.sort(descendente);
trace(vector); //97,95,86,78,69,59,57,25,19,2

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas actionscript_3

Comentarios | Enviar un comentario
Vaya, no sabía que se podía utilizar el método sort con una función personalizada.

Gracias! :)
Por: Juanlu_001
Welcome to the Jungle! Me has ganado el Tip, pero bueno no pasa nada. Nice Tip!
:wink:
Por: M@U
Genial tip, no tenía conocimiento que se pudieran ordenar los elementos de un vector, de la misma forma que se ordena un Array, gracias Zguillez por esta información (Y)
Por: fredybg
Qué bueno!

Recuerdo que hace años hice algo similar en AS2 con DataSetIterator y lo posteé en mi blog, quizá sirva de ayuda adicional a esto ;)

http://www.elecash.org/blog/2004/11/04/ordenando-datagrids-con-datasets/

Un saludo!! ^^
Por: Elecash
Gracias, por el tip!
Habria algun problema si en lugar de retornar 1 o -1 solo retornar la resta (x - y) igual seria negativo si es menor y positivo si mayor?
Gracias.
Por: Daniel Rodriguez-blog

Daniel Rodriguez-blog :

Gracias, por el tip!
Habria algun problema si en lugar de retornar 1 o -1 solo retornar la resta (x - y) igual seria negativo si es menor y positivo si mayor?
Gracias.

Si, eso se podría hacer, en realidad solo toma si es valor positivo o negativo

Código :

return (x - y);

Por: Zguillez
Excelente tip ^^
Por: daz_angie
excelente, lo habia pensado pero no lo habia hecho ¬¬ me ganaste U_U felicitaciones
Por: eldervaz
Zguillez, tengo una pregunta fuera del contexto. Me podrias ayudar con un codigo que necesito para una clase.

El punto es que tengo que hacer un script en C, la cual haga una frecuencia de palabras de un documento y que me diga la cantidad de veces que una palabra se repite. Gracias por tu ayuda.

r.abreu@me.com
Por: Alberto Abreu-blog

Alberto Abreu-blog :

Zguillez, tengo una pregunta fuera del contexto. Me podrias ayudar con un codigo que necesito para una clase.

El punto es que tengo que hacer un script en C, la cual haga una frecuencia de palabras de un documento y que me diga la cantidad de veces que una palabra se repite. Gracias por tu ayuda.

Aqui escribí un tip para hacer eso
Por: Zguillez
Muy buen tip pero me encantaria saber como dedujiste todo esto...
Por: tomasdev
hola!!! necesito si me podes decir cualles son los elementos de un vector!? gracias!!!
Por: fede tarable-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.