Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2005, 14:50
siddin
 
Fecha de Ingreso: enero-2005
Mensajes: 7
Antigüedad: 19 años, 3 meses
Puntos: 0
Como ordenar un array (lista)?

Buenos dias...

Lo que quiero decir es que actualmente uso la funcion sort(nombre_funcion);
para ordenar una lista (array), pero el problema es ordeno segun unos campos
numericos que tienen valores desde el 0 hasta el 1000 y flash me los ordena
pero agrupando los 1, 100, 128, etc; 2, 200, 222, etc; 5, 500, 510, etc y
los quiero 1, 2, 3, 20, 100, 222, 500, etc, o sea todos consecutivos asi
sean numeros de uno dos tres o cuatro digitos.

No entiendo el porque de esto y me gustaria que alguien sabe como lograr lo
que quiero por favor me indique como,.. muchas gracias...

Siddin Vargas

Este es el codigo que llevo hecho:

var contraseñas = new Array();

contraseñas.push({name: "mom", nickname: ""});
contraseñas.push({name: "ana", nickname: ""});
contraseñas.push({name: "jay", nickname: ""});
contraseñas.push({name: "anne", nickname: ""});
contraseñas.push({name: "regina", nickname: ""});

contraseñas[0].nickname = "mom(1)";
contraseñas[1].nickname = "ana(30)";
contraseñas[2].nickname = "jay(150)";
contraseñas[3].nickname = "anne";
contraseñas[4].nickname = "regina(500)";

for(var i=0; i<5; i++){
trace(contraseñas[i].name);
}

function order(a,b){
var a1 = a.nickname.lastIndexOf("(");
var a2 = a.nickname.slice((a1+1), (a[0].nickname.length - 1));

var b1 = b.nickname.lastIndexOf("(");
var b2 = b.nickname.slice((b1+1), (b[0].nickname.length - 1));

if (a2 < b2){
return -1;
}
else if (a2 > b2){
return 1;
}
else {
return 0;
}
}
trace ("Sorted:");
contraseñas.sort(order, 16);
for(var i=0; i<5; i++){
trace(contraseñas[i].nickname);
}