Foros del Web » Programando para Internet » Javascript »

Cargar estructua de datos por dinamicamente

Estas en el tema de Cargar estructua de datos por dinamicamente en el foro de Javascript en Foros del Web. Hola, ¿como podria cargar esta estructura dinamicamnete? var data; data = {items: [ {value: "valor1"}, {value: "valor2"}, {value: "valor3"}, ]}; Es decir, sin saber cuantos ...
  #1 (permalink)  
Antiguo 14/11/2010, 07:00
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Cargar estructua de datos por dinamicamente

Hola, ¿como podria cargar esta estructura dinamicamnete?
var data;
data = {items: [
{value: "valor1"},
{value: "valor2"},
{value: "valor3"},
]};

Es decir, sin saber cuantos valores hay(puedo tener valor1,valor2,valorx,...)
Y quiero cargarlo mediante un foreach o algo así.

Gracias!!!
  #2 (permalink)  
Antiguo 14/11/2010, 07:08
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: Cargar estructua de datos por dinamicamente

Ese tipo de objetos se recorre con bucles for in.
Y ya para cosas más complejas podés usar alguna función recursiva como esta: http://www.disegnocentell.com.ar/notas2.php?id=225
  #3 (permalink)  
Antiguo 14/11/2010, 08:55
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Cargar estructua de datos por dinamicamente

Gracias por la respuesta.

¿Y como declaro la variable?
  #4 (permalink)  
Antiguo 14/11/2010, 09:43
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Cargar estructua de datos por dinamicamente

He conseguido esto pero no es lo mismo:
var data = {
items: []
};

// access
data.items[0]="Valor1";
data.items[1]="Valor2";
data.items[2]="Valor3";
var i=0;
for (i=0;i<=data.items.length-1;i++)
{
alert(data.items[i]);
}

Esto de arriba funciona, pero no es lo mismo que el código de mi primer mensaje.
¿Alguna sugerencia?
  #5 (permalink)  
Antiguo 14/11/2010, 10:43
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Cargar estructua de datos por dinamicamente

es cierto que no es lo mismo que el primer codigo pero en lo personal lo haria como lo muestra en este segundo codigo. ¿razon? porque no le veo sentido a esta estructura donde las propiedades values parecen tener una misma relacion. como unico lo justificaria es si tuviera algunas propiedades adicionales pero en tu caso solo refleja una. es solo una opinion...

Código:
[
{value: "valor1"},
{value: "valor2"},
{value: "valor3"}
]
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 14/11/2010, 10:52
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Cargar estructua de datos por dinamicamente

La cuestion es que tengo que hacerlo como arriba para que funcione el jquery-autosuggest:
https://github.com/fredwu/jquery-autosuggest y así que me cargue los datos adecuadamente.
Si os fijais con este código de la página web, recoge los datos perfectamente para el autosuggest:
var data = {items: [
{value: "21", name: "Mick Jagger"},
{value: "43", name: "Johnny Storm"},
{value: "46", name: "Richard Hatch"},
{value: "54", name: "Kelly Slater"},
{value: "55", name: "Rudy Hamilton"},
{value: "79", name: "Michael Jordan"}
]};

Pero yo no voy a tener esos nombres siempre, segun que ocasión tendré unos usuarios diferentes, y por eso mismo necesito añadir los datos de esta manera, pero dinamicamente.
Solamente necesito saber como hacerlo...

Muchisimas gracias!!!
  #7 (permalink)  
Antiguo 14/11/2010, 11:01
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Cargar estructua de datos por dinamicamente

veo que tienes otro tema sustancialmente identico, por favor mantenga uno a la vez. y disculpa, entiendo el tema que te corresponde pero no te puedo ayudar porque estas usando libreria. le recomiendo que traigas el contenido publicado en el otro tema y lo muestres en este, luego un moderador se encargara de eliminar el otro tema.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 14/11/2010, 11:08
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Cargar estructua de datos por dinamicamente

El caso es que quería hacerlo con Xml, pero luego he pensado que me da igual como hacerlo, el caso es saber como crear dinamicamento la estructura de ese objeto.
Lo siento...
  #9 (permalink)  
Antiguo 14/11/2010, 11:09
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Cargar estructua de datos por dinamicamente

Por cierto, esto que es?
var data = {items: [
{value: "21", name: "Mick Jagger"},
{value: "43", name: "Johnny Storm"},
{value: "46", name: "Richard Hatch"},
{value: "54", name: "Kelly Slater"},
{value: "55", name: "Rudy Hamilton"},
{value: "79", name: "Michael Jordan"}
]};

Un objeto, una clase, un array dentro de un objeto?
Mas que nada para saber como buscar en google.

Gracias!
  #10 (permalink)  
Antiguo 14/11/2010, 11:26
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Cargar estructua de datos por dinamicamente

la forma de crearlo dinamicamente depende de varios factores pero principalmente son: la fuente de donde vienen los datos y las herramientas que utilizaras para crearlo dinamicamente. por ejemplo, si la fuente es una base de datos por obligacion necesitas un lenguaje servidor para comunicarte con la base de datos. a la misma vez vas creando esa estructura. si la fuente fuera un archivo xml -como el ejemplo que expones- puedes usar javascript, pero tambien existe la tendencia de usar librerias. aunque el resultado final es el mismo, el acercamiento es distinto. es decir, mientras que en javascript utilizas directamente funciones del DOM en las librerias utilizas ciertas funciones. la forma correcta depende de tus gustos o necesidades.

por ultimo, la estructura que estas viendo se conoce como JSON (javascript object notation) el cual no es otra cosa mas que el uso de definiciones literales para diferentes tipos de datos. en el ejemplo que expones lo que ves son string " ", objetos { } y array [ ].
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 14/11/2010, 11:30
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Cargar estructua de datos por dinamicamente

Muchas gracias.
Mi intención es generar un campo oculto en C# y ahí en el page load cargar los datos que quiero.
Luego en Javascript recoger ese valor mediante:document.getElementById y empezar a crear el objeto-array este dinamicamente.
Es decir, decalarar este objeto e ir metiendo los datos de tal manera que quede igual que lo anteriormente expuesto.

Si alguien me pudiera ayudar a generarlo dinamicamente...
Ahora que sé lo que es, voy a ver que me dice google...


Gracias!!!!
  #12 (permalink)  
Antiguo 14/11/2010, 12:59
 
Fecha de Ingreso: julio-2006
Mensajes: 145
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: Cargar estructua de datos por dinamicamente

Solucionado: Esta estructura:
var data;
data = {items: [
{value: "valor1"},
{value: "valor2"},
{value: "valor3"},
]};




dinamicamente:

data = {items: new Array()};

data.items.push({value: 'Value1'});
data.items.push({value: 'Value2'});


Gracias a todos!!

Etiquetas: dinamicamente
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 14:33.