Foros del Web » Programando para Internet » Javascript »

Crear array de nombre dinamico variableNmbreJugador+"Datos"

Estas en el tema de Crear array de nombre dinamico variableNmbreJugador+"Datos" en el foro de Javascript en Foros del Web. Buenos dias, me inicie en programacion este año, estoy en mi primer semestre de Javascript y me interesa crear un Array cuyo nombre sea dinamico. ...
  #1 (permalink)  
Antiguo 16/05/2014, 08:17
 
Fecha de Ingreso: mayo-2014
Ubicación: Montevideo
Mensajes: 4
Antigüedad: 10 años
Puntos: 0
Pregunta Crear array de nombre dinamico variableNmbreJugador+"Datos"

Buenos dias, me inicie en programacion este año, estoy en mi primer semestre de Javascript y me interesa crear un Array cuyo nombre sea dinamico. Me refiero a lo siguiente:

var nombreJugador1 = prompt("Ingrese su nombre", "");

Si el nombre es "andres":

Mi array quiero que se llame:

var andresDatos = new Array (andres, 0 ,0 ,0); // con dichos elementos.

Se puede hacer eso?
Muchas gracias por cualquier ayuda, saludos!!

Jorge.
  #2 (permalink)  
Antiguo 16/05/2014, 08:34
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Amigo: ese tema lo tratamos en otro hilo reciente, mira las respuestas:

http://www.forosdelweb.com/f13/crear...jetos-1099401/
__________________
Salu2!
  #3 (permalink)  
Antiguo 16/05/2014, 09:21
 
Fecha de Ingreso: mayo-2014
Ubicación: Montevideo
Mensajes: 4
Antigüedad: 10 años
Puntos: 0
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Muchas gracias Italico76 por tu respuesta, acabo de mirar el hilo que me comentas, pero creo que mis nociones de javascript aun son muy pocas, y no lo llego a comprender, podrias, darme alguna idea mas sencilla?

Muchas gracias!

Jorge.
  #4 (permalink)  
Antiguo 16/05/2014, 13:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Puedes hacerlo al menos de dos formas, con eval o con window.

eval("var andresDatos = new Array ('andres', 0 ,0 ,0)");

Aunque a algunas personas les da el patatús cuando ven esto.

Otra forma podría ser

window['andresDatos']=new Array ('andres', 0 ,0 ,0);

Última edición por ocp001a; 16/05/2014 a las 13:39 Razón: Dejé un error en el código
  #5 (permalink)  
Antiguo 16/05/2014, 13:35
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Ahora creo entender lo que pides... cierto es mas "simple" que lo que te referi antes:

Código Javascript:
Ver original
  1. <script>   
  2.     datos = new Array();
  3.     datos.push( new Array ('andres',0 ,0 ,0));
  4.     datos.push( new Array ('juanita',8 ,1 ,9));
  5.            
  6.     for (var i in datos)
  7.     {  
  8.         for (var j in datos[i])
  9.             document.write(datos[i][j]+ ' ');          
  10.  
  11.         document.write('<br/>');       
  12.     }  
  13. </script>

Y ya cargando los datos con prompt() ...

Código Javascript:
Ver original
  1. <script>   
  2.     personas = new Array();
  3.    
  4.     var r = confirm("Quieres cargar una persona?");
  5.                    
  6.     while(r)
  7.     {
  8.         var nombre      = prompt("Ingresa un nombre");
  9.         var apellido    = prompt("Ingresa un apellido");
  10.         var edad        = parseInt(prompt("Ingresa la edad"));
  11.        
  12.         personas.push( new Array (nombre,apellido,edad));
  13.                
  14.         var r = confirm("Quieres cargar una persona?");    
  15.     }      
  16.    
  17.                
  18.     for (var i in personas)
  19.     {  
  20.         for (var j in personas[i])
  21.             document.write(personas[i][j]+ ' ');           
  22.         document.write('<br/>');       
  23.     }  
  24. </script>

Si te fijas.. creo quedo mas complicado que con objetos literales del otro post!
__________________
Salu2!

Última edición por Italico76; 16/05/2014 a las 14:15
  #6 (permalink)  
Antiguo 16/05/2014, 14:33
 
Fecha de Ingreso: mayo-2014
Ubicación: Montevideo
Mensajes: 4
Antigüedad: 10 años
Puntos: 0
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Muchisimas gracias a ambos ocp001a y Italico76, claro yo aun no hago una web sino solo mediante javascript pido datos con un prompt, y esos datos los muestro mediante un alert o document.write.

Podria preguntarles a ambos, que es lo que hacen esos codigos? Por que la mayoria de ellos no los se usar aun, si entiendo que el confirm seria como el prompt por tu ejemplo Italico76, pero Window["AndresDatos"] no se que hace, no lo conozco, tampoco eval.

Ahora lo que entendi de la parte de Italico76 es q creas un array personas, pero no lo declaras con var ?

Luego el confirm es como un prompt que preguntas que hacer, y si das el ok, entonces le pedis todos esos datos para almacenarlos en el array, pero que hacer exactamente:

personas.push( new Array (nombre,apellido,edad));

Y el for es diferente a como lo conozco yo lo hago for (i=0; i<personas.length; i++ ) {
}

Y por que anidaste el for dentro del otro for, y preguntas por variables distintas?

Disculpen a los dos que haga tantas preguntas, es que se ve que estoy a un nivel muy basico, ya que recien comence hace 1 mes y medio de clase, y me falta aprender tanto...

Gracias por la paciencia, saludos desde Uruguay!

Jorge.
  #7 (permalink)  
Antiguo 16/05/2014, 14:36
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

- push() mete elementos dentro de un array (los "empuja")

- El for() dentro de otro for() es para recorrer el array bi-dimensional o sea.. array de personas donde cada persona es un array de propiedades

- Esa forma de for() es equivalente a la otra
__________________
Salu2!
  #8 (permalink)  
Antiguo 16/05/2014, 15:00
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: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Vale aclarar que el bucle for utilizado por Italico76 en su ejemplo, solo es factible con arrays y objetos. Para otros casos (e incluso para arrays y objetos), utiliza la estructura tradicional, es decir, la de 3 partes que es la que conoces.

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
  #9 (permalink)  
Antiguo 16/05/2014, 15:10
 
Fecha de Ingreso: mayo-2014
Ubicación: Montevideo
Mensajes: 4
Antigüedad: 10 años
Puntos: 0
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Ahh con razon aun lo desconozco, recien empece con arrays la semana pasada, y no vi arrays multidimensionales, solo un array basico, que recorro con un unico for. Y objetos aun no lo vi tampoco, ni se cuando lo vere...

Muchas gracias por la buena onda un abrazo!

Saludos!!

Jorge.
  #10 (permalink)  
Antiguo 16/05/2014, 16:30
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Cita:
Iniciado por Alexis88 Ver Mensaje
Vale aclarar que el bucle for utilizado por Italico76 en su ejemplo, solo es factible con arrays y objetos. Para otros casos (e incluso para arrays y objetos), utiliza la estructura tradicional, es decir, la de 3 partes que es la que conoces.
Alexis88 : voy a abusar de tus ganas de enseñar.. y preguntarte con que tipo de datos no sirve la forma FOR..IN de JS (?) he intentado buscar eso que dices pero no encontre nada y pues sabes bien soy un novato

Si puedes pon un ejemplito

Gracias
__________________
Salu2!
  #11 (permalink)  
Antiguo 16/05/2014, 16:49
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: Crear array de nombre dinamico variableNmbreJugador+"Datos"

El for...in es utilizado para iterar objetos, tal como se explica en la documentación existente. Aquellos elementos que no sean objetos, no pueden ser iterados con este tipo de bucle, pero ten cuidado, porque en JS, prácticamente todos son objetos.

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
  #12 (permalink)  
Antiguo 16/05/2014, 16:53
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Gracias Alexis!
__________________
Salu2!
  #13 (permalink)  
Antiguo 16/05/2014, 17:11
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
Puntos: 1485
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Cita:
Iniciado por Italico76 Ver Mensaje
... con que tipo de datos no sirve la forma FOR..IN de JS (?)
con arrays. =Þ no es que no funcione en arrays porque claramente funciona. en lo personal, cuando veo un for/in para recorrer los elementos de un array, considero que está siendo mal utilizado. for/in es para iterar las propiedades enumerables de un objeto. si se aplica a un array para recorrer los elementos, podrías obtener resultados indeseados o inconsistentes.

Código:
var array = [true, null, 'string'];
array['foo'] = 'bar'; // OJO! contrario a lo que muchos podrian creer, esta linea no es un nuevo elemento, sino una propiedad ;
for (var prop in array) console.log(prop);

// resultado 0, 1, 2, foo
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #14 (permalink)  
Antiguo 16/05/2014, 17:54
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Cita:
Iniciado por zerokilled Ver Mensaje
Código:
var array = [true, null, 'string'];
array['foo'] = 'bar'; // OJO! contrario a lo que muchos podrian creer, esta linea no es un nuevo elemento, sino una propiedad ;
for (var prop in array) console.log(prop);

// resultado 0, 1, 2, foo
Creo haberlo entendido y esta buenísimo

Cuando uno construye un array lo que esta haciendo es clonar un objeto vacio y meter valores en propiedades numericas, excepto lo hagas de la segunda forma: array[indice] = valor
__________________
Salu2!
  #15 (permalink)  
Antiguo 16/05/2014, 17:57
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años
Puntos: 11
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Tal como dice for..in recorre toda las propiedades cuyo valor[enumerable] sea verdadero
llegando hasta los prototipos.

Código Javascript:
Ver original
  1. var a = ["1"];
  2. var r=[];
  3. Array.prototype.algo = function(){};
  4. for(var i in a){
  5. r.push(i)
  6. }
  7. console.log(r)//["1","algo"] ?? interesante
@jorgeURU si estas conociendo los array es mejor que los hagas de forma literal.
Código Javascript:
Ver original
  1. var A= [5]
  2.  console.log(A)//que crees?
  3.  var B =new Array(5);
  4.  console.log(B)//que crees?
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #16 (permalink)  
Antiguo 16/05/2014, 19:17
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

Cita:
Iniciado por jp91 Ver Mensaje
Tal como dice for..in recorre toda las propiedades cuyo valor[enumerable] sea verdadero [/HIGHLIGHT]
Segun veo.. tanto la propiedad como el valor pueden ser false

Código Javascript:
Ver original
  1. <script>
  2. var array = [true, false, null, 'string'];
  3.  
  4. array['foo'] = 'bar'; // OJO! contrario a lo que muchos podrian creer, esta linea no es un nuevo elemento, sino una propiedad ;
  5.  
  6. array[true] = 'otro bar';
  7. array[false] = 'otro mas';
  8. array[false] = false;
  9.  
  10. for (var prop in array)
  11.     console.log(prop+ ' => '+array[prop]);
  12.  
  13. /*
  14. 1 => false
  15. 2 => null
  16. 3 => string
  17. foo => bar
  18. true => otro bar
  19. false => false
  20. */
  21. </script>

Te agradezco tu explicacion sobre prototipos...ya la estoy examinando:

Código Javascript:
Ver original
  1. <script>
  2. var a = ["1",2,3,"Pablo",4];
  3. var r=[];
  4.  
  5. Array.prototype.algo = function(){};
  6.  
  7. for(var i in a){
  8.     r.push(i)
  9. }
  10. console.log(r); //["0", "1", "2", "3", "4", "algo", algo: function]
  11. </script>

En esa modifificacion de tu script con prototipos, se perdio el orden (porque son enumerables) y descarto la llave "Pablo" por lo mismo (los alfanumericos no son enumerables) y... bueno sigue agregando algo que parece ser un callback a "algo"
__________________
Salu2!

Última edición por Italico76; 16/05/2014 a las 19:25
  #17 (permalink)  
Antiguo 16/05/2014, 20:41
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
Puntos: 1485
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

@italico, creo que aún no has captado como funciona for/in. lo que el compañero @jp91 quiso decir con valor[enumerable] sea verdadero es que el propio lenguaje haya permitido que una propiedad en particular se pueda enumerar. es algo que sucede transparentemente al programador, especialmente con las propiedades built-in del lenguaje. esta parte del lenguaje aún no la he visto bien pero en las últimas versiones del estandar de javascript (ECMA-262), el lenguaje permite al programador definir las características de una propiedad mediante un método setter o getter. entre esas características, el programador puede definir si una propiedad es enumerable asignando un boolean, donde true (creo) indica que la propiedad se puede enumerar. a como lo entiendo, enumerar propiedades significa que tu puedas recopilar una lista de propiedades.

en el ejemplo que pones usando valores primitivos como propiedad (array[false] por ejemplo), sucede otra cosa. en ese caso, el intérprete convierte ese valor a string y lo utiliza como el nombre de la propiedad. o sea, array[false] es lo mismo que array['false'].

Código:
var array = [true, false, null,'string'];
array[false] = 'boolean';
console.log( array[ 'false' ] ); // imprime 'boolean';
Cita:
En esa modifificacion de tu script con prototipos, se perdio el orden (porque son enumerables) y descarto la llave "Pablo" por lo mismo...
ahí pablo no se descartó, recuerda que for/in lee los nombres de las propiedades, no los valores de las propiedades. en tu ejemplo, el 3 del resultado representa a Pablo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 16/05/2014 a las 20:49
  #18 (permalink)  
Antiguo 16/05/2014, 21:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Crear array de nombre dinamico variableNmbreJugador+"Datos"

@jp91 y @zerokilled : gracias por su tiempo...... la verdad no entiendo a cabalidad '''nada''' de JS, le pongo empeño pero llevo creo 4 dias recien

Gracias por todo
__________________
Salu2!

Etiquetas: dinamico, nombre
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 09:56.