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);
}