-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path06-07-08.js
55 lines (45 loc) · 1.8 KB
/
06-07-08.js
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
49
50
51
52
53
54
55
/*
Importante:
No modificar ni el nombre ni los argumetos que reciben las funciones, sólo deben escribir
código dentro de las funciones ya definidas.
No comentar la funcion
*/
function crearClasePersona() {
class Persona {
constructor(nombre, edad, hobbies, amigos) {
// El constructor de la clase Persona recibe nombre (string), edad (integer), hobbies (array de strings), amigos (array de objetos)
// Inicializar las propiedades de la persona con los valores recibidos como argumento
// Tu código aca:
this.nombre = nombre;
this.edad = edad;
this.hobbies = hobbies;
this.amigos = amigos;
}
addFriend(nombre, edad) {
this.amigos.push({ nombre: nombre, edad: edad });
}
addHobby(hobby) {
this.hobbies.push(hobby);
}
getFriends() {
// Retorna un arreglo con solo los nombres de los amigos
return this.amigos.map(amigo => amigo.nombre);
}
getHobbies() {
// Retorna un arreglo con los hobbies de la persona
return this.hobbies;
}
getPromedioEdad() {
// Retorna el promedio de edad de los amigos de la persona
const totalEdad = this.amigos.reduce((acc, amigo) => acc + amigo.edad, 0);
return totalEdad / this.amigos.length;
}
getData() {
// Retorna un string con la información completa de la persona
return `${this.nombre} tiene ${this.edad} años`;
}
}
return Persona;
}
// No modifiques nada debajo de esta linea //
module.exports = crearClasePersona