Foros del Web » Programando para Internet » Javascript »

Enviar función al método sort del objeto array

Estas en el tema de Enviar función al método sort del objeto array en el foro de Javascript en Foros del Web. Hola tengo lo siguiente <script> function OrdUltimasPalabras(a, b) { var pos1=a.indexOf('.'); var pos2=b.indexOf('.'); var x=''; var y=''; var w=''; var z=''; x = a.substring(10,pos1); y ...
  #1 (permalink)  
Antiguo 19/06/2007, 10:43
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 17 años, 7 meses
Puntos: 0
Enviar función al método sort del objeto array

Hola tengo lo siguiente

<script>
function OrdUltimasPalabras(a, b) {
var pos1=a.indexOf('.');
var pos2=b.indexOf('.');
var x='';
var y='';
var w='';
var z='';
x = a.substring(10,pos1);
y = b.substring(10,pos2);
w = a.substring(11,pos1);
z = b.substring(11,pos2);
// return ((x < y && parseInt(w)<parseInt(z)) ? -1 : ((x > y && parseInt(w)>parseInt(z)) ? 1 : 0));
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

var a='ECMS060507f3.pdf|hogar_1,ECEN060507f4.pdf|hogar _2,ECCO060507f5.pdf|hogar_3,ECSA060507f6.pdf|hogar _4,ECSA060507f7.pdf|hogar_5,ECSA060507f8.pdf|hogar _6,ECSA060507f9.pdf|hogar_7,ECMU060507f10.pdf|hoga r_8,ECMU060507f11.pdf|hogar_9,ECFA060507f12.pdf|ho gar_10,ECFA060507f13.pdf|hogar_11,ECAN060507f16.pd f|hogar_12,ECAD060507f17.pdf|hogar_13,ECCA060507f1 8.pdf|hogar_14,ECAD060507f19.pdf|hogar_15,ECCH0605 07f20.pdf|hogar_16,ECCH060507f22.pdf|hogar_17,ECAD 060507f23.pdf|hogar_18,ECAG060507f24.pdf|hogar_19, ECAD060507f25.pdf|hogar_20,ECMA060507f26.pdf|hogar _21,ECMA060507f27.pdf|hogar_22,ECAD060507f28.pdf|h ogar_23,ECPR060507G1.pdf|deporte_1,ECCR060507G2.pd f|deporte_2,ECCR060507G3.pdf|deporte_3,ECF1060507G 4.pdf|deporte_4,ECF1060507G5.pdf|deporte_5,ECF3060 507G8.pdf|deporte_6,ECF3060507G9.pdf|deporte_7,ECT A060507G10.pdf|deporte_8,ECTA060507G11.pdf|deporte _9,ECCE060507G12.pdf|deporte_10,ECPR060507j1.pdf|m inegocio_1,ECOP060507j2.pdf|minegocio_2,ECOP060507 j3.pdf|minegocio_3,';
a+='ECTB060507j4.pdf|minegocio_4,ECTB060507j5.pdf| minegocio_5,ECSE060507j6.pdf|minegocio_6,ECSE06050 7j7.pdf|minegocio_7,ECCE060507j8.pdf|minegocio_8,E CEN060507j10.pdf|minegocio_9,ECEN060507j11.pdf|min egocio_10,ECCH060507j12.pdf|minegocio_11,ECCH06050 7j13.pdf|minegocio_12,ECBZ060507j14.pdf|minegocio_ 13,ECBZ060507j15.pdf|minegocio_14,ECAV060507j16.pd f|minegocio_15,ECK1060507k1.pdf|empleo_1,ECK106050 7k2.pdf|empleo_2,ECEM060507k3.pdf|empleo_3,ECEM060 507k4.pdf|empleo_4,ECEM060507k5.pdf|empleo_5,ECEM0 60507k6.pdf|empleo_6,ECEM060507k7.pdf|empleo_7,ECE M060507k8.pdf|empleo_8,ECEM060507k9.pdf|empleo_9,E CPR060507a1.pdf|portada_1,ECEN060507a2.pdf|portada _2,ECAA060507a3.pdf|portada_3,ECOP060507a4.pdf|opi nion_1,ECAA060507a5.pdf|opinion_2,ECAN060507a6.pdf |opinion_3,ECAN060507a7.pdf|opinion_4,ECIN060507a8 .pdf|opinion_5,ECAA060507a9.pdf|opinion_6,ECIN0605 07a10.pdf|opinion_7,ECAS060507a11.pdf|opinion_8,EC PL060507a12.pdf|politica_1,ECPL060507a13.pdf|polit ica_2,';

//a='ECMS060507a10.pdf|hogar_1,ECEN060507a1.pdf|hoga r_2,ECEN060507a2.pdf|hogar_2';
a=a.toLowerCase();

arr=a.split(',');
arr.sort(OrdUltimasPalabras);
for (J=0;J<=parseInt(arr.length)-1;J++){
document.write(arr[J]+'<br>');
}
</script>

Lo ordena por ejemplo así

ecpr060507a1.pdf|portada_1
ecin060507a10.pdf|opinion_7
ecas060507a2.pdf|opinion_8
eces060507c10.pdf|luces_9
eces060507c11.pdf|luces_10

El orden debería ser

ecpr060507a1.pdf|portada_1
ecin060507a2.pdf|opinion_7
ecas060507a10.pdf|opinion_8
eces060507c10.pdf|luces_9
eces060507c11.pdf|luces_10

Alguien sabe qué más le puedo agragar al js para que funcione? Saludos
  #2 (permalink)  
Antiguo 19/06/2007, 13:37
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: Enviar función al método sort del objeto array

HOla

prueba con esto

Cita:
<script>
var a='ECMS060507f3.pdf|hogar_1,ECEN060---->
a=a.split(",");
a.sort();
for (J=0;J<a.length;J++){
document.write(a[J]+'<br>');
}
window.status=a.length
</script>

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:39.