Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Usar variable como nombre para otra

Estas en el tema de Usar variable como nombre para otra en el foro de Javascript en Foros del Web. Buenas, la verdad es que parece lioso pero yo quería usar lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original for ( var u = ...
  #1 (permalink)  
Antiguo 03/04/2014, 09:41
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 10 meses
Puntos: 3
Usar variable como nombre para otra

Buenas, la verdad es que parece lioso pero yo quería usar lo siguiente:
Código Javascript:
Ver original
  1. for(var u=0;u<nombrecol.length;u++) {
  2.        if(input=document.getElementById(nombrecol[u]))
  3.         input.value="hola";
  4. }
pero en vez de "hola" fuese el resultado de un array cuyo nombre se encuentra almacenado en nombrecol[]. Es decir, existe por ejemplo, un array que se llama "nombre" definido así:
Código Javascript:
Ver original
  1. nombre=new Array()
el cual se ha ido llenando con nombre.push(). El caso es que por otros motivos, el array nombrecol[] lleva almacenados los nombres de los arrays, es decir,
Código Java:
Ver original
  1. nombrecol[0]="nombre";
  2. nombrecol[1]="apellidos";
y yo necesito que se vayan mostrando los items de esos arrays cuando les toque en el for de arriba. Según pensaba yo quedaría algo así:
Código Javascript:
Ver original
  1. for(var u=0;u<nombrecol.length;u++) {
  2.        if(input=document.getElementById(nombrecol[u]))
  3.         input.value=nombrecol[u][u];
  4. }
Siendo nombrecol[u]->string con el nombre del array y [u]->el índice del array "nombre"
Obviamente no funciona porque nombrecol ya es un array en sí mismo. La cuestión es si puedo hacer algo parecido.
Atentamente, Cristian Molina

EDIT: He estado pensando y creo que con un array multidimensional se solucionaría la cosa es que no tengo ni idea de como guardar los datos (porque los obtengo a través de php de una BD y los voy almacenando en esos arrays) ni luego acceder a ellos.
  #2 (permalink)  
Antiguo 03/04/2014, 12:58
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Usar variable como nombre para otra

Una alternativa de solución que se me ocurre en este momento es usar un array de objetos, en donde cada objeto contendría los atributos nombre y apellido. Al recorrer el array, solamente te queda hacer referencia a cada atributo de cada objeto.

Código Javascript:
Ver original
  1. var padre = [
  2.     {nombre: "Juan", apellido: "Pérez"},
  3.     {nombre: "Lola", apellido: "Ramírez"}
  4. ];
  5.  
  6. for (i = 0, lim = padre.length; i < lim; i++){
  7.     document.body.innerHTML += "Nombre: " + padre[i].nombre + "<br />";
  8.     document.body.innerHTML += "Apellido: " + padre[i].apellido + "<br /><br />";
  9. }

En este ejemplo, tengo un array con dos objetos. Cada objeto tiene los atributos nombre y apellido, en donde cada uno de ellos tiene un dato en particular. Luego, recorro al array y en cada iteración, imprimo los datos contenidos, haciendo referencia a los atributos de los objetos contenidos en el array.

El resultado es el siguiente:

Código HTML:
Ver original
  1. Nombre: Juan
  2. Apellido: Pérez
  3.  
  4. Nombre: Lola
  5. Apellido: Ramírez

DEMO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/04/2014, 10:27
Avatar de legomolina  
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Usar variable como nombre para otra

Funciona perfecto. Lo he modificado porque el array lo tengo que llenar mediante php pero por lo demás funciona perfecto. Una última duda, ¿si al final de cada objeto se queda una coma pasa algo?¿Es muy incorrecto?
Código PHP:
Ver original
  1. var resultados=new Array();
  2.     <?php
  3.     $i=0;
  4.     while($infocol=mysqli_fetch_field($res)) {
  5.         $nombrecol[$i]=$infocol->name;
  6.         $i++;
  7.     }
  8.    
  9.     $i=0;
  10.     while($resultado=mysqli_fetch_assoc($res)) {
  11.         $u=0;
  12.         echo "resultados[".$i."]=({";
  13.         while($u<count($nombrecol)) {
  14.             echo $nombrecol[$u].":'".$resultado[$nombrecol[$u]]."',";
  15.             $u++;
  16.         }
  17.         echo "});\n";
  18.         echo "alert(resultados[".$i."]['campo a mostrar']);\n";
  19.         $i++;
  20.     }
  21.     ?>

Gracias de nuevo
  #4 (permalink)  
Antiguo 04/04/2014, 11:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Usar variable como nombre para otra

Las comas, como en la escritura, se utilizan para separar elementos. Si después de un objeto no hay otro, entonces no debe haber coma alguna.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: funcion, input, nombre, usar, variable
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 05:51.