JavaScript - Código Dificil de Entender

 
Vista:

Código Dificil de Entender

Publicado por anjel (1 intervención) el 05/06/2006 10:06:35
Deseo desarrollar un código que me muestre aleatoriamente todos los números de un Array, pero sin que estos sean repetidos, navegando por Internet eh encontrado esto:
<SCRIPT Language = JavaScript>

function getNumbers() {
temp = 0
newnumber = 0
document.frmOne.taAll.value = ""
TA = document.frmOne.taAll
lottery = new Array(49)

for (i = 1; i < 50; i++) {
lottery[i] = i
}

for (i = 1; i < 50; i++) {
newnumber = (Math.random() * 49) + 1
newnumber = parseInt(newnumber, 10)
temp = lottery[i]
lottery[i] = lottery[newnumber]
lottery[newnumber] = temp
}
for (i = 1; i < 50; i++) {
TA.value = TA.value + "lottery[" + i + "] = " + lottery[i] + "\n"
}

}
</SCRIPT>
http://homepage.ntlworld.com/kayseycarvey/jss2p14.html

Ahora bien, la ayuda biene aqui, si pudieras ayudarme a entender este codigo, es sobre estas lineas:
temp = lottery[i]
lottery[i] = lottery[newnumber]
lottery[newnumber] = temp
Que imagino que el el corazon del deorden y al mismo tiempo el orden de los numeros.
Esta ayuda me serviria de mucho ya que la explicacion del autor no me ayudo mucho.
Bueno, pues saludos y GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Código Dificil de Entender

Publicado por bego (11 intervenciones) el 06/06/2006 12:55:31
Vamos a ver..
1.- inicializa las variables temp y newnumber a 0
2.- inicializa un elemento de la web a vacio
3.- TA es el elemento
4.- lottery es un array de 49 posiciones
5.- inicializamos cada posicion del array:
lottery[1]=1;
lottery[2]=2;
lottery[3]=3;
lottery[4]=4;
.
.
.
6.- en el siguiente bucle, para ca iteración calcula un núemro aleatorio y lo pasa a tipo int (integer) y lo guarda en newnumber,
guarda en temp el valor de la posición actual del lottery
almacena en esa posición (el valor anterior se lo ha guardado en tmp) el valor de lottery[newnumber]
y
lottery[newnumber] = temp

Ejemplo:
iteración 1: i=1
newnumber=7; (lo da el random por ejemplo y el parseInt)
temp=lottery[1] => temp=1
lottery[1]=lottery[7]
lottery[7]=1;

Intercambia valores!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar