Puedes usar el método sort() o sortOn() de la clase Array, o una inserción ordenada.
A ver si te sirve este código, 100% mejorable( como dice Maikel
), porque lo he modificado ahora para adaptarlo a lo q necesitas, yo lo tenia hecho para busquedas:
Código :
function insertarOrdenado( vector:Array, nuevo:String ):Number {
var posicion:Number,
izquierda:Number,
derecha:Number,
elementoActual:String,
listaDatos:Array;
if( Array( vector ) == null ) throw new Error( "Vector no válido" );
if( String( nuevo ) == null ) throw new Error( "Cadena no válida" );
izquierda = 0;
derecha = vector.length - 1;
posicion = Math.floor( ( izquierda + derecha ) / 2 );
elementoActual = vector[posicion];
while( ( elementoActual != nuevo ) && ( izquierda < derecha ) ) {
if ( elementoActual > nuevo )
derecha = posicion - 1;
else
izquierda = posicion + 1;
posicion = Math.floor( ( izquierda + derecha ) / 2 );
elementoActual = vector[posicion];
}
if( elementoActual < nuevo ) posicion++;
vector.splice( posicion, 0, elementoActual );
return posicion;
}
ruuuuuuuuuuuu