Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/11/2007, 16:56
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Ayudita con una función

Buen problema AdRiAnCeTe!

Ahí va mi idea gracias a las expresiones regulares:

Código:
function quitaRepes(str) {
	while( (reg=/(\d+;)((\d+;)*)\1/g).test(str)===true )
		str = str.replace(reg, "$1$2");
	return str;
}

var str = "1;1;2;1;3;1;4;2;3;4;5;2;6;4;7;3;2;5;7;3;4;1;5;8;2;4;6;9;3;4;1;";
document.write( str +"<br/>" );
document.write( quitaRepes(str) );
Su salida:
Cita:
1;1;2;1;3;1;4;2;3;4;5;2;6;4;7;3;2;5;7;3;4;1;5;8;2; 4;6;9;3;4;1;
1;2;3;4;5;6;7;8;9;
Claro que es más complicada, pero supongo que más eficiente. Si alguien se atreve a eliminar el while ese recibirá un aplauso de mi parte, pero que yo sepa no se puede por la propia forma de trabajar de las expresiones regulares, que lo mirado, mirado lo dejan y siguen adelante.



Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.