Autor Tema: Javascript cómo se podría crear un objeto cada vez que el usuario pulsa un botón  (Leído 3077 veces)

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Tengo una duda sobre la creación de los objetos con JavaScript. En los temas que aquí se desarrollan con el curso de javascript desde cero de aprenderaprogramar.com creábamos un objeto definiendolo asi:

cometa1 = new cometa(20,20,'Andromeda');

Pero imaginemos que queremos crear una acción con un botón y cada vez que se pulse ese boton se cree un nuevo objeto. He estado probando y no se puede asignar asi:

cometa[contador] = new cometa (20,20,'Andromeda');

porque es un vector y espera un resultado.

Estoy dandole vueltas y no consigo dar con la solución. A ver si alguien me ayuda.

Saludos
« Última modificación: 26 de Febrero 2016, 09:41 por César Krall »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Duda javascript tamaño objetos
« Respuesta #1 en: 24 de Febrero 2016, 22:19 »
Hola bermartinv.

¿puedes poner el código que estas usando?

Porque no debería de haber problema para almacenar objetos dentro de un array.


bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Re:Duda javascript tamaño objetos
« Respuesta #2 en: 24 de Febrero 2016, 22:59 »
Hola Pedro,
te mando este código como podría ser otro. Mi duda es como crear de una manera continua un array que contenga las cualidades de un objeto y otro problema es sacarlo por pantalla.
Código: [Seleccionar]
<!DOCTYPE>
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>

</style>
<script type="text/javascript">
            window.onload = function(){
                var usuarios = new Array();
                var contador= 0;
                document.getElementById("pulsador").addEventListener('click',nuevoUsuario);
                document.getElementById("mostrar_usuarios").addEventListener('click',mostrarUsuarios);
            }
           
function usuario(nombre,pais){
this.nombre = nombre;
                this.pais = pais;
}
           
function nuevoUsuario(){
var nombre = prompt('Introduzca su nombre: ');
                var pais = prompt ('Introduzca pais de procedencia :');
                usuarios[contador] = new usuario(nombre,pais);
}
            function mostrarUsuarios(){
                for (var i=0;i<usuarios.length;i++){
                    for (x in usuarios){
                        document.getElementById("datos").innerHTML =x+':'+usuarios[x];
                    }
                }
            }
           
</script>
</head>
<body>


<button id ="pulsador"> Nuevo usuario </button>
<button id="mostrar_usuarios"> Mostrar usuarios</button>
<div id='datos'></div>
</body>
</html>

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Duda javascript tamaño objetos
« Respuesta #3 en: 24 de Febrero 2016, 23:22 »
Te dejo el código retocado. ;)

Código: [Seleccionar]
<!DOCTYPE>
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>

</style>
<script type="text/javascript">
var usuarios =[];
            var contador = 0;

            window.onload = function(){
                document.getElementById("pulsador").addEventListener('click',nuevoUsuario);
                document.getElementById("mostrar_usuarios").addEventListener('click',mostrarUsuarios);
            }
           
function usuario(nombre,pais){
this.nombre = nombre;
                this.pais = pais;
}
           
function nuevoUsuario(){
var nombre = prompt('Introduzca su nombre: ');
                var pais = prompt ('Introduzca pais de procedencia :');
                usuarios[contador] = new usuario(nombre,pais);
contador++;
}

            function mostrarUsuarios(){
for(var i=0; i<usuarios.length; i++){
var datosUsuario = '';
for(x in usuarios[i]){
datosUsuario += usuarios[i][x] + ', ';
}
document.getElementById("datos").innerHTML += datosUsuario + '<br/>';
}
            }
           
</script>
</head>
<body>
<button id ="pulsador"> Nuevo usuario </button>
<button id="mostrar_usuarios"> Mostrar usuarios</button>
<div id='datos'></div>
</body>
</html>

Las variables usuarios y contador las declaré con ámbito global, puesto que si las dejamos como las tenías, cada vez que metemos un usuario nuevo, siempre seria el único objeto que contendría el array.

Saludos.

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Re:Duda javascript tamaño objetos
« Respuesta #4 en: 24 de Febrero 2016, 23:33 »
Gracias Pedro, ahora me quedó claro  ;)
Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".