Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: bermartinv en 24 de Febrero 2016, 14:18

Título: Javascript cómo se podría crear un objeto cada vez que el usuario pulsa un botón
Publicado por: bermartinv en 24 de Febrero 2016, 14:18
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
Título: Re:Duda javascript tamaño objetos
Publicado por: pedro,, 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.

Título: Re:Duda javascript tamaño objetos
Publicado por: bermartinv 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>
Título: Re:Duda javascript tamaño objetos
Publicado por: pedro,, 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.
Título: Re:Duda javascript tamaño objetos
Publicado por: bermartinv en 24 de Febrero 2016, 23:33
Gracias Pedro, ahora me quedó claro  ;)
Saludos