Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/12/2012, 10:25
Avatar de rosonator
rosonator
 
Fecha de Ingreso: noviembre-2012
Ubicación: Bilbao
Mensajes: 49
Antigüedad: 12 años
Puntos: 7
Respuesta: Problemilla con Arrays

Sabes qué ocurre? Que no estás "copiando" el array Alumnos en una tupla de Notas, sino que estás referenciando en todas las tuplas de Notas al mismo array Alumnos. Por suerte, hay muchísimas maneras de enfocar esto, la mayoría sin que te haga falta ese array intermediario, pudiéndo cargarlo directamente en el array Notas:
A:
Código:
function rellena_array()
{
for(var i=0;i<numero;i++)
{

notas[i][0] = prompt("Introduce el nombre del alumno");
notas[i][1] = prompt("Introduce las notas de la primera evaluaci\xF3n de " + alumno[0]);
notas[i][2] = prompt("Introduce las notas de la segunda evaluaci\xF3n de " + alumno[0]);
notas[i][3] = prompt("Introduce las notas de la tercera evaluaci\xF3n de " + alumno[0]);
}
ó
B:
Código:
function rellena_array()
{
for(var i=0;i<numero;i++)
{
notas.push(newArray(prompt("Introduce el nombre del alumno"),prompt("Introduce las notas de la primera evaluaci\xF3n de " + alumno[0]),prompt("Introduce las notas de la segunda evaluaci\xF3n de " + alumno[0]),prompt("Introduce las notas de la tercera evaluaci\xF3n de " + alumno[0]));
}
Usando ese array intermediario, necesitas "clonar" el array a la hora de copiarlo, para que la referencia no siga siendo la misma. Esto puedes hacerlo así:
C:
Código:
function rellena_array()
{
for(var i=0;i<numero;i++)
{

alumno[0] = prompt("Introduce el nombre del alumno");
alumno[1] = prompt("Introduce las notas de la primera evaluaci\xF3n de " + alumno[0]);
alumno[2] = prompt("Introduce las notas de la segunda evaluaci\xF3n de " + alumno[0]);
alumno[3] = prompt("Introduce las notas de la tercera evaluaci\xF3n de " + alumno[0]);

notas[i] = alumno.slice(0);  //Copias el array alumno desde 0.

}
}
Están todas sin probar, pero más allá de fallitos, lso conceptos son esos. Espero haberte ayudado y, si lo he hehco, haberme ganado un like, que tengo que ganarme reputación jajajaja