Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Vector de objetos en javascript

Estas en el tema de Vector de objetos en javascript en el foro de Javascript en Foros del Web. Hola, estoy intentando crear un vector de objetos en javascript y no se como hacerlo. Esta claro que lo siguiente no funciona: Código: function Objeto(){ ...
  #1 (permalink)  
Antiguo 26/03/2018, 05:12
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Vector de objetos en javascript

Hola, estoy intentando crear un vector de objetos en javascript y no se como hacerlo. Esta claro que lo siguiente no funciona:

Código:
function Objeto(){
	this.id;
	this.x;
	this.op1;
	this.op2;
}

var MiObjeto= new Objeto();

MiObjeto = new Array(50);
Funciona bien cuando es un objeto simple. Pero como necesito muchos objetos del mismo tipo, no logro encontrar la forma. A ver si alguien puede ayudarme. Gracias.
  #2 (permalink)  
Antiguo 26/03/2018, 06:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Vector de objetos en javascript

Vale. Pues parece que lo he solucionado así:

Código:
function Objeto(){
	this.id;
	this.x;
	this.op1;
	this.op2;
}

var MiObjeto= new Array(50);

for (i = 0; i < 50; i++) {
	MiObjeto[i] = new Objeto();
}
  #3 (permalink)  
Antiguo 29/03/2018, 00:57
Avatar de Chofis  
Fecha de Ingreso: mayo-2013
Mensajes: 5
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Vector de objetos en javascript

Muchas gracias chicos, es un tema muy interesante y me servira para caso de estudio.
  #4 (permalink)  
Antiguo 31/03/2018, 03:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Vector de objetos en javascript

Pues me sigue dando problemas y no se por qué.
Si despues de declararlo como he hecho arriba pongo:

Código:
for (i = 0; i < 50; i++) {
	MiObjeto[i].id = i;
}

for (i = 0; i < 50; i++) {
	document.write(MiObjeto[i].id);
}
El resultado es "undefined".
A ver si alguien puede ayudarme.
No se quitar loo de SOLUCIONADO al tema.
  #5 (permalink)  
Antiguo 31/03/2018, 07:32
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Vector de objetos en javascript

Ejecuta todo dentro del mismo bucle:

Código Javascript:
Ver original
  1. function Objeto(){
  2.     this.id;
  3.     this.x;
  4.     this.op1;
  5.     this.op2;
  6. }
  7.  
  8. var MiObjeto= new Array(50);
  9.  
  10. for (i = 0; i < 50; i++) {
  11.     MiObjeto[i] = new Objeto();
  12.   MiObjeto[i].id = i+1;
  13.   document.write(MiObjeto[i].id);
  14. }

VER MUESTRA
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 31/03/2018, 14:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Vector de objetos en javascript

Si, funciona bien así.
Pero me he dado cuenta que mi problema está dentro de la función $.ajax.
Lo que hago es tomar datos del servidor con $.ajax y los asigno al objeto. Cuando intento acceder a ellos desde cualquier parte del programa, el resultado es "undefinied".
Estoy buscando alguna solución.
  #7 (permalink)  
Antiguo 31/03/2018, 16:16
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Vector de objetos en javascript

Corregido el error. No era problema con la declaración del array de objetos. El problema estaba dentro de la función de jQuery $.Ajax. He tenido que poner la linea:

Código:
async:false;
Esta línea si hace que el array de Objetos guarde los datos extraidos con Ajax. Si no la pongo, no me extrae bien los datos y al acceder a ellos me dice "undefined"
Parece no tiene que funcionar asíncronamente. Queda pues así:

Código:
$.ajax({
    async:false;
    url: "miweb.php",
    data: params,
    type: "GET",
    dataType: "JSON",
    success: function(datos){ 
                 MiObjeto[i].id=datos.id;
                 MiObjeto[i].x=datos.x;
                 MiObjeto[i].op1=datos.op1;
                 MiObjeto[i].op2=datos.op2;
   }
 });
No se si alguien sabría decirme a qué se debe esto.

Etiquetas: java, objetos, vector
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 12:06.