Foros del Web » Programando para Internet » Javascript »

Problemilla con Arrays

Estas en el tema de Problemilla con Arrays en el foro de Javascript en Foros del Web. Hola, bueno estoy intentando cargar un array con otro array que rellena el usuario. El problema que tengo es que no se guardan los datos ...
  #1 (permalink)  
Antiguo 09/12/2012, 13:29
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Problemilla con Arrays

Hola,

bueno estoy intentando cargar un array con otro array que rellena el usuario. El problema que tengo es que no se guardan los datos correctamente, sino que el último array introducido se graba en todas las posiciones el vector.

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;

}

}

*numero es un numero introducido por el usuario. Es que no veo el error, pero soy novatilllo asi que...

Gracias.
  #2 (permalink)  
Antiguo 09/12/2012, 20:00
Avatar de Franz1628  
Fecha de Ingreso: marzo-2007
Ubicación: Lima - Perú
Mensajes: 145
Antigüedad: 17 años, 1 mes
Puntos: 26
Respuesta: Problemilla con Arrays

Te puede ayudar inicializar el array

Código Javascript:
Ver original
  1. alumno = new Array();
__________________
En mi Blog puedes ver articulos javascript y más...
@Franz1628
  #3 (permalink)  
Antiguo 10/12/2012, 02:59
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemilla con Arrays

var notas = new Array();
var alumno = new Array(4);

Perdon no lo he puesto, están los dos inicializados fuera de la función.

Última edición por AlexanderCastanoC; 10/12/2012 a las 03:12
  #4 (permalink)  
Antiguo 10/12/2012, 09:52
Avatar de Franz1628  
Fecha de Ingreso: marzo-2007
Ubicación: Lima - Perú
Mensajes: 145
Antigüedad: 17 años, 1 mes
Puntos: 26
Respuesta: Problemilla con Arrays

Mejor pon todo tu codigo
__________________
En mi Blog puedes ver articulos javascript y más...
@Franz1628
  #5 (permalink)  
Antiguo 10/12/2012, 10:25
Avatar de rosonator  
Fecha de Ingreso: noviembre-2012
Ubicación: Bilbao
Mensajes: 49
Antigüedad: 11 años, 5 meses
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
  #6 (permalink)  
Antiguo 10/12/2012, 13:57
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemilla con Arrays

Muchas gracias a los dos.

Pillo el concepto, yo pensaba que si que podia "copiarlo" en la tupla, en algun otro lenguaje juraría que lo he hecho.

Un saludo.

Última edición por AlexanderCastanoC; 10/12/2012 a las 14:43

Etiquetas: arrays
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 10:01.