Foros del Web » Programando para Internet » Javascript »

array de objetos

Estas en el tema de array de objetos en el foro de Javascript en Foros del Web. buenas... se puede armar un array de objetos en javascript?, estoy intentando pero no funciona. desde el vamos, declaro una variable global que me parece ...
  #1 (permalink)  
Antiguo 15/07/2008, 10:13
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 11 meses
Puntos: 2
array de objetos

buenas...

se puede armar un array de objetos en javascript?, estoy intentando pero no funciona.
desde el vamos, declaro una variable global que me parece que no la ve desde dentro de la funcion agregarAutor

Código HTML:
<script language="javascript">

var listaAutores = new array();
var listaAutoresElegidos = new array();

function autor(id,nombre)
{
this.nombre = nombre
this.id=id
}

function agregarAutor(autor)
{

var listaAutores=listaAutores.push(autor)

}

function a()
{
a=new autor(1,'jose');
agregarAutor(a);
a=new autor(2,'pepe');
agregarAutor(a);

}

</script>
<body onLoad="a()"> 

agradecería me orienten un poquito y si es posible armar dicho array, como lo recorro para los n objetos almacenados?

muchas gracias desde ya
  #2 (permalink)  
Antiguo 15/07/2008, 10:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: array de objetos

Mirando rápidamente al código, lo que me parece mal es esto:
Código:
var listaAutores=listaAutores.push(autor)

Intenta quitarle ese var para ver qué sucede.
Para acceder a los datos de una matriz solo debes especificar el índice. Ejemplo:
Código PHP:
var matriz = new array()
matriz[0] = 'valor0'
matriz[10] = 'valor10' 
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 15/07/2008, 10:28
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 11 meses
Puntos: 2
Respuesta: array de objetos

Gracias por la respuesta.

te comento lo que tengo que hacer porque a lo mejor me estoy liando de mas.

tengo una base de datos de autores en servidor. y quiero que el cliente vaya eligiendo los autores que quiera.

lo que intento es manejarme con un array de objetos que contenga a los autores que eligió el cliente, para que cuando presione enviar, mande por post la lista al servidor.

intento con lo que me sugeriste de todos mosdos
  #4 (permalink)  
Antiguo 15/07/2008, 10:37
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 11 meses
Puntos: 2
Respuesta: array de objetos

esto es lo que tengo hasta ahora. Me sigue diciendo que listaAutores es nulo o no es un objeto:

Código HTML:
<script language="javascript">

var listaAutores = new array();

function autor(id,nombre)
{
this.nombre = nombre
this.id=id
}

function agregarAutor(id,nombre)
{
a=new autor(id,nombre)

listaAutores=listaAutores.push(a)
}

</script>


<div onclick "agregarAutor(1,'jose')">jose</div>
<div onClick="agregarAutor(2,'pepe')">pepe</div> 
  #5 (permalink)  
Antiguo 15/07/2008, 10:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: array de objetos

Veo dos errores que estás comentiendo:
1) Si pones array() no funciona en IExplorer, debe ser Array().
2) Aquí estás asignando a listaAutores el valor devuelto por push que en realidad es el propio valor agregado, no deberías tomar ese valor:
Código PHP:
listaAutores=listaAutores.push(a
Intenta colocando:
Código PHP:
listaAutores.push(a); 
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 15/07/2008, 13:48
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 11 meses
Puntos: 2
Respuesta: array de objetos

ahi va queriendo.
Gracias por la buena disposición.

saludos
  #7 (permalink)  
Antiguo 15/07/2008, 13:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: array de objetos

No entendí, ¿funcionó o no?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 15/07/2008, 18:30
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: array de objetos

loading...............


Bueno yo lo haría de esta forma.
Código HTML:
<script language="javascript">

var listaAutores = [];

function autor(id,nombre)
{
       this.nombre = nombre
       this.id=id
       return this;
}

function agregarAutor(id,nombre)
{
     listaAutores.push(new autor(id,nombre));
     return true;
}

</script>


<div onclick "agregarAutor(1,'jose')">jose</div>
<div onClick="agregarAutor(2,'pepe')">pepe</div> 
Y para recorrerlo haces

Código PHP:
for(var i=0;i<listaAutores.length;i++)
{
       var 
listaAutores[i];
       
alert(c.id+":"+c.nombre);

No se si eso quieres.

connection closed.
__________________

Maborak Technologies
  #9 (permalink)  
Antiguo 16/07/2008, 06:27
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 972
Antigüedad: 19 años, 11 meses
Puntos: 2
Respuesta: array de objetos

hola David, si funcionó, muchas gracias.

Maborak, gracias por el aporte, hay alguna diferencia en hacerlo de la forma que proponés o es solo comprimir un poco mas el código?
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:42.