Foros del Web » Programando para Internet » Javascript »

Como añadir objetos a un array con bucle for

Estas en el tema de Como añadir objetos a un array con bucle for en el foro de Javascript en Foros del Web. Saludos a la comunidad, bueno el caso es que tengo un ejercicio en el que me piden validar un usuario y un login, estos son ...
  #1 (permalink)  
Antiguo 08/01/2013, 15:49
 
Fecha de Ingreso: octubre-2012
Mensajes: 24
Antigüedad: 11 años, 6 meses
Puntos: 0
Como añadir objetos a un array con bucle for

Saludos a la comunidad,

bueno el caso es que tengo un ejercicio en el que me piden validar un usuario y un login, estos son atributos de mi objeto USUARIO

la idea es crear un array de objetos Usuario, que en un principio claro está vacio

les muestro ya el codigo:

me declaro una fecha(para la fecha de alta)

var fecha=new Date();
var dia=fecha.getDate();
var mes=fecha.getMonth()+1;
var año=fecha.getYear()+1900;
var fechaAlta=(dia+"/"+mes+"/"+año);


creo mi objeto usuario:

function Usuario(usu,pass,sex,mail,fech_nac,telef,fech_al){

this.usuario=usu;
this.password=pass;
this.sexo=sex;
this.correo=mail;
this.fecha_nacimiento=fech_nac;
this.telefono=telef;
this.fecha_alta=fech_al;

}

A continuacion me declaro el array:

var arrayUsuarios=new Array();

ahora declaro una funcion que llama al pulsar un boton del body, asñi ire cogiendo las variables de los text-box mediante getElementById()
y al final intento añadir los objetos recorriendo el array con un for, pero no se lo que hago mal, porque no funciona y los mensajes de error, no me dicen nada.


function altaUsuario(){

var usuario=document.getElementById('u').value;
var password=document.getElementById('p').value;
var sexo;
if(document.form.sexo[0].checked)
{
sexo='hombre';
}
if(document.form.sexo[1].checked)
{
sexo='mujer';
}
var correo=document.getElementById('m').value;
var fecha_nacimiento=document.getElementById('fn').val ue;
var telefono=document.getElementById('tl').value;

for(i=0;i<arrayUsuarios.length;i++)
{
arrayUsuarios[i]=Usuario('usuario','password','sexo','correo',
'fecha_nacimiento','telefono','fecha_alta');



}


muchas gracias por llegar hasta aquí
Saludos
  #2 (permalink)  
Antiguo 08/01/2013, 16:06
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Como añadir objetos a un array con bucle for

Usted quiere crear 1 array de usuarios los cuales estos usuarios van a ser objetos creados de su clase base llamada "Usuario" como bien definió, pero ¿en donde crea la instancia del objeto con respecto a esa clase? para eso tiene que usar la palabra reservada new tal como hizo con Array()

Código Javascript:
Ver original
  1. arrayUsuarios[i]=Usuario('usuario','password','sexo','correo',
  2. 'fecha_nacimiento','telefono','fecha_alta');

Código Javascript:
Ver original
  1. arrayUsuarios[i]=new Usuario(usuario,password,sexo,correo,
  2. fecha_nacimiento,telefono,fecha_alta);

Otra cosa, por favor use la herramienta Highlight para postear código la próxima, es molesto leer código sin ello

Y si pasas variables como parametro al objeto Usuario no van entre comillas

Última edición por rodrigo791; 08/01/2013 a las 16:18
  #3 (permalink)  
Antiguo 09/01/2013, 09:25
 
Fecha de Ingreso: octubre-2012
Mensajes: 24
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Como añadir objetos a un array con bucle for

Hola,
gracias por tu respuesta,

si, lo intenté como me dijiste, es verdad que se me escapó un detalle muy importante,pero de todas formas , no funciona

volveré a intentarlo a ver..

Saludos cordiales
  #4 (permalink)  
Antiguo 09/01/2013, 13:02
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Como añadir objetos a un array con bucle for

Mira esto, que facil es:

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <title>sadas</title>
  4. </head>
  5. <body>
  6. <script type="text/javascript">
  7.  
  8. var arrayUsuarios = new Array(2); // defino 1 array de 2 elementos, por lo tanto sus posiciones son 0 y 1
  9.  
  10. function Usuario(usu,pass,sex,mail,fech_nac,telef){ // defino la clase Usuario, notar que le quite el ultimo parametro, solo por gusto personal
  11.  
  12. this.usuario=usu;
  13. this.password=pass;
  14. this.sexo=sex;
  15. this.correo=mail;
  16. this.fecha_nacimiento=fech_nac;
  17. this.telefono=telef;
  18. }
  19.  
  20. // defino el contenido de las variables que luego pasare como parámetro al objeto al momento de crear la instancia
  21. var nombre = "rodrigo";
  22. var password = "contrasenia";
  23. var sexo = "masculino";
  24. var dirMail = "[email protected]";
  25. var fechNac = "1/1/1000";
  26. var telefono = "11223344";
  27.  
  28. // a medida que recorro el array "arrayUsuarios" voy agregando en cada una de sus posiciones la cual es determinada por la variable " i " 1 objeto Usuario
  29. for(i = 0; i<arrayUsuarios.length;i++){
  30.  
  31.     arrayUsuarios[i] = new Usuario(nombre,password,sexo,dirMail,fechNac,telefono);
  32.    
  33.      }
  34.  
  35. //accedo y muestro en pantalla a los metodos del objeto almacenado en la 1er posición del arrayUsuarios, podría haber mostrado el del 2do también pero es solo 1 ejemplo
  36. alert("Posicion 0, primer objeto, metodo usuario: "+arrayUsuarios[0].usuario);
  37. alert("Posicion 0, primer objeto, metodo password: "+arrayUsuarios[0].password);
  38. alert("Posicion 0, primer objeto, metodo sexo: "+arrayUsuarios[0].sexo);
  39. alert("Posicion 0, primer objeto, metodo correo: "+arrayUsuarios[0].correo);
  40. alert("Posicion 0, primer objeto, metodo fecha_nacimiento: "+arrayUsuarios[0].fecha_nacimiento);
  41. alert("Posicion 0, primer objeto, metodo telefono: "+arrayUsuarios[0].telefono);
  42.  
  43. </script>
  44. </body>
  45. </html>

Hice un par de cambios de nombres de variables tal vez pero funciona perfectamente, pruebalo

Etiquetas: bucle, funcion, objetos
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 13:24.