Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/06/2003, 09:17
Avatar de Kaopectate
Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 2 meses
Puntos: 38
Te cuento:

La variable "s" es un string donde llevo lo que te muestro en el alert en cada uno de los casos, lo que hace el if es preguntar si dentro de la cadena ya está grabado o no lo que re va a incluir.

Veamos

Código:
if (s.indexOf(String(aItems[i])) == -1)
s.indexOf(<x>) -> Retorna la posición en la que el string <x> aparece dentro del string s (o -1 si no aparece).

aItems[i] es uno de los elementos del arreglo (valor numérico).

String(<n>) -> Convierte a string.

El conjunto dice, pasa el elemento i del arreglo a string y búscalo dentro de la cadena "s", si no lo encuentras, pasa a la siguiente instrucción.

Código:
s += "," + String(aItems[i]);
A lo contenido dentro de la variable "s", añádele una "," y luego el contenido de la posición i del arreglo convertida a string.

Eso es lo que hace: Si el elemento no lo he puesto ya en el string, entonces lo pongo.

Saludos.

------------ NOTA POSTERIOR ------------

La función lo que hace es ordenar el arreglo e ir comparando cada elemento con el anterior. Si un elemento es igual al anterior, entonces está repetido y lo agrego a la lista. Pero si el elemento está tres veces en la lista, al revisar usando solo ese criterio aparecería dos veces en la lista de elementos repetidos.

Es por eso que solo lo agrego a la lista de repetidos si no estaba previamente.

Saludos.

Última edición por Kaopectate; 06/06/2003 a las 09:17