JavaScript - Añadir objetos a un array

 
Vista:
Imágen de perfil de Álvaro
Val: 11
Ha aumentado su posición en 10 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Añadir objetos a un array

Publicado por Álvaro (4 intervenciones) el 17/11/2019 13:53:03
Buenos días / tardes / noches. Estoy realizando un pequeño proyecto de una página web de una clínica. En ella se me pide crear los objetos Medico, Especialidad, Seguro y Cita. Los objetos Medico y Especialidad ya los creo de la siguiente manera:

1
2
3
4
5
6
7
8
9
class Medico {
    constructor() {
 
        this._nombre = document.getElementById("nombreMedico").value;
        this._apellidos = document.getElementById("apellidosMedico").value;
        this._especialidad = new Especialidad(document.getElementById("especialidadMedico").value);
        this.personal = [];
 
    }

1
2
3
4
5
class Especialidad {
    constructor(especialidad) {
        this._especialidad = especialidad;
    }
}

Estoy haciendo uso de clases, ya que me resulta algo más cómodo para trabajar con objetos. Como se ve, uno de los atributos de Medico es especialidad, donde creo el objeto del mismo nombre, Especialidad. Hasta ahí todo correcto. Mediante un formulario ingreso los datos del médico y los muestro en el mismo sitio web. Sin embargo, lo que quiero es introducir todos los médicos en un array y así mostrarlos todos. Lo hago de la siguiente manera:

1
2
3
4
5
function registrarMedicos() {
    let medico = crearMedico();
 
    return medico.personal.push(medico.nombre, medico.apellidos, medico.especialidad._especialidad);
}

El array me lo crea, pero a la hora de mostrarlo en la consola del navegador para saber si se "rellena" correctamente me aparece:

Personal: undefined

O de la siguiente manera:

Personal: 3

Agradecería cualquier consejo o ayuda.

Muchas gracias, y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.506
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Añadir objetos a un array

Publicado por joel (895 intervenciones) el 17/11/2019 21:12:52
Hola Alvaro que hay en la función crearMedico()?

Me cuesta un poco de entender la manera que lo estas haciendo... lo suyo seria que pasaras los valores al constructor del objecto Medico, no que los obtenga de la web.

Puedes publicar el código entero para poder probarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Álvaro
Val: 11
Ha aumentado su posición en 10 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Añadir objetos a un array

Publicado por Álvaro (4 intervenciones) el 17/11/2019 21:28:36
Buenas Joel, aquí dejo el código de la clase Medico:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Medico {
    constructor() {
 
        this._nombre = document.getElementById("nombreMedico").value;
        this._apellidos = document.getElementById("apellidosMedico").value;
        this._especialidad = new Especialidad(document.getElementById("especialidadMedico").value);
        this.personal = new Array(2);
 
    }
 
 
    get nombre() {
        return this._nombre;
    }
 
    get apellidos() {
        return this._apellidos;
    }
 
    get especialidad() {
        return this._especialidad;
    }
 
    crearMedico() {
        return new Medico();
    }
 
 
    registrarMedico() {
        let medico = this.crearMedico();
        let personal = medico.personal;
 
        personal.push(medico.nombre, medico.apellidos, medico._especialidad);
    }
 
    mostrarDatos() {
        let personal = this.registrarMedico();
 
        if (personal === undefined) {
            console.log("error");
        } else {
            document.getElementById("resultado").innerHTML = JSON.stringify(personal);
            console.log("Personal en la funcion mostrarDatos() dentro de la clase Medico: " + JSON.stringify(personal));
        }
 
    }
 
}

Lo que intento es introducir los médicos que se vayan "registrando" en una matriz, y así cuando se llame a la función mostrarDatos (la cual deberé adaptar para que recorra dicha matriz y mostralas en la página web
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar