JavaScript - Mostrar atributos de una clase

 
Vista:
sin imagen de perfil

Mostrar atributos de una clase

Publicado por Alejandro (40 intervenciones) el 05/10/2021 17:55:46
Buenas, estoy intentando realizar un ejercicio donde debo mostrar todos los atributos de una clase seguido por un "-" y el valor del atributo.
Si mi clase es así:

1
2
3
4
5
6
7
Class Personaje{
                     constructor(peso, altura)
                              this.nombre;
                              this.edad;
                              this.peso = peso;
                              this.altura = altura;
                              this.colorPelo;

Debo crear un método (función) que muestre por pantalla con el console.log todos los atributos y valores de la clase, como puedo hacerlo?
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 7aamin
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar atributos de una clase

Publicado por 7aamin (79 intervenciones) el 05/10/2021 21:47:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MiClase {
  constructor(peso, altura) {
    this.peso = peso; this.altura = altura;
  }
 
  MostrarAtributos() {
    console.log(`
      Peso - ${this.peso}
      Altura - ${this.altura}
    `)
  }
}
 
const instancia = new MiClase(50, 1.70)
instancia.MostrarAtributos();
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
sin imagen de perfil

Mostrar atributos de una clase

Publicado por Alejandro (40 intervenciones) el 06/10/2021 22:28:29
¿Cómo podría hacerse usando el for...in en la función? Ésto es lo que yo tengo:

1
2
3
4
5
mostrarAtributos(){
        for (let atributos in Persona){
            console.log(atributos)
        }
    }

¿Cómo podría hacerlo?
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 7aamin
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar atributos de una clase

Publicado por 7aamin (79 intervenciones) el 07/10/2021 20:00:22
Pues seria asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Persona {
  constructor(altura, peso) {
    this.altura = altura;
    this.peso = peso;
  }
 
  MostrarAtributos(data) {
    //le pasas como argumento data que sepala instancia de la calse (es un Objeto JSON)
    //recorres el objeto JSON con un for donde "i" es la key
    for (let i in data) {
      console.log(data[i]) //data[i] seria data['altura']
    }
  }
}
 
const persona = new Persona(1.70, 50);
console.log(persona) //esto retorna el objeto Persona -> Persona { altura: 1.7 , peso: 50 }
persona.MostrarAtributos(persona);
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
sin imagen de perfil

Mostrar atributos de una clase

Publicado por Alejandro (40 intervenciones) el 08/10/2021 12:01:05
¿Sabrías decirme cómo se haría en Typescript? Me lo están pidiendo ahora pero ando un poco perdido, la verdad... yo lo que tengo es lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
export class Libro{
    private titulo: string;
    private nPaginas: number;
    private isbn: string;
    private autor: string;
    private editorial: string;
 
    constructor(titulo:string, nPaginas:number, isbn: string, autor: string, editorial: string){
        this.titulo = titulo;
        this.nPaginas = nPaginas;
        this.isbn = isbn;
        this.autor = autor;
        this.editorial = editorial;
    }
 
    public mostrarInfo():string{
        let informacion:string;
        for(informacion in Libro){
            return informacion;
        }
    }
}

Con el método mostrarInfo debo mostrar todos los datos del libro tal que así:
Título - Tutorial de JavaScript
nPaginas - 496
ISBN - 135986DF1923
Autor - J. K. Rowling
Editorial - Café Molido
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 7aamin
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar atributos de una clase

Publicado por 7aamin (79 intervenciones) el 08/10/2021 20:46:30
Hola.. es practicamente similar a javascript:

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
class Libro{
    private titulo: string;
    private nPaginas: number;
    private isbn: string;
    private autor: string;
    private editorial: string;
 
    constructor(titulo:string, nPaginas:number, isbn: string, autor: string, editorial: string){
        this.titulo = titulo;
        this.nPaginas = nPaginas;
        this.isbn = isbn;
        this.autor = autor;
        this.editorial = editorial;
    }
 
    MostrarInfo = (_data: Object) => {
        for (let i in _data) {
            if (i !== "MostrarInfo") {
                console.log(i + ": " + _data[i])
            }
        };
    }
}
 
let libro = new Libro('Quijote', 200, 'isbn', 'autor', 'editorial');
libro.MostrarInfo(libro);
 
/*
titulo: Quijote
nPaginas: 200
isbn: isbn
autor: autor
editorial: editorial
*/
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
sin imagen de perfil

Mostrar atributos de una clase

Publicado por Alejandro (40 intervenciones) el 10/10/2021 16:27:09
¿Sería posible mostrarlo sin añadir el argumento "_data"? ¿Podrías explicarme un poco cómo funciona el for...in? No termino de entender como funciona, se crea una variable cualquiera ¿para qué? ¿cómo hace el bucle? Estoy perdido
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 7aamin
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar atributos de una clase

Publicado por 7aamin (79 intervenciones) el 10/10/2021 17:20:27
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
class Libro{
    private titulo: string;
    private nPaginas: number;
    private isbn: string;
    private autor: string;
    private editorial: string;
 
    constructor(titulo:string, nPaginas:number, isbn: string, autor: string, editorial: string){
        this.titulo = titulo;
        this.nPaginas = nPaginas;
        this.isbn = isbn;
        this.autor = autor;
        this.editorial = editorial;
    }
 
    MostrarInfo = () => {
        for (let i in this) {
            if (i !== "MostrarInfo") {
                console.log(i)
            }
        }
    }
}
 
let libro = new Libro('Quijote', 200, 'isbn', 'autor', 'editorial');
libro.MostrarInfo();

Las variables se crean para almacenar la informacion en memoria.
El for in funciona asi:
creas una variable cualquiera que va a tomar el valor de cada uno de los componentes de la clase... en este caso los componentes de la clase son los atributos y los metodos.. this representa la clase en si, el objeto en si, por eso usamos for (let i in this), donde "i" va a tomar el valor de cada uno:

"i" va a valer "titulo" despues
"i" va a valer "nPaginas"
....
....
....
"i" va a valer "MostrarInfo"
pero MostrarInfo no nos interesa, por eso lo filtro con un "if"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Mostrar atributos de una clase

Publicado por Alejandro (40 intervenciones) el 12/10/2021 11:08:54
1
2
3
4
5
printAll(){
        for(let atributos in this){
            console.log(atributos + ": ");
        }
    }

Con esta función cómo puedo mostrar los atributos y los valores de mi objeto? Sólo se me muestra los atributos pero no los valores
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 7aamin
Val: 9
Ha aumentado su posición en 6 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mostrar atributos de una clase

Publicado por 7aamin (79 intervenciones) el 12/10/2021 16:10:49
1
2
3
4
5
printAll(){
        for(let atributos in this){
            console.log(atributos + ": " + this[atributos]);
        }
    }
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