Repository navigation
Expand file tree
/
Copy pathhomework5.js
More file actions
202 lines (156 loc) · 5.08 KB
/
Copy pathhomework5.js
File metadata and controls
202 lines (156 loc) · 5.08 KB
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
// No cambies los nombres de las funciones.
function crearGato(nombre, edad) {
// Crear un nuevo objeto con la propiedad "nombre" y el valor definido como el argumento "nombre".
// Agrega una propiedad al objeto con el nombre "edad" y usa el valor definido en el argumento "edad"
// Agrega un método (funcion) llamado "meow" que devuelva el string "Meow!"
// Devuelve el objeto
// Tu código:
let newCat = {
nombre: nombre,
edad: edad,
meow: function (){
return "Meow!";
}
}
return newCat;
}
function agregarPropiedad(objeto, property) {
// Agrega una propiedad al objeto (argumento "objeto") con el valor `null`
// Devuelve el objeto
// NOTA: El nombre de la propiedad no es "propiedad", el nombre es el valor del argumento llamado "property" (una cadena/string)
// Tu código:
objeto[property] = null;
return objeto;
}
function invocarMetodo(objeto, metodo) {
// "metodo" es una cadena que contiene el nombre de un método (funcion) en el objeto
// Invoca ese método
// Nada necesita ser devuelto ("returned")
// Tu código:
objeto[metodo]();
}
function multiplicarNumeroDesconocidoPorCinco(objetoMisterioso) {
// "objetoMisterioso" tiene una propiedad llamada "numeroMisterioso"
// Multiplica el numeroMisterioso por 5 y devuelve el producto
// Tu código:
return objetoMisterioso.numeroMisterioso * 5;
}
function eliminarPropiedad(objeto, propiedad) {
// Elimina la propiedad "propiedad" de "objeto"
// Devuelve el objeto
// Tu código:
delete objeto[propiedad];
return objeto;
}
function nuevoUsuario(nombre, email, password) {
// Crea un nuevo objeto con las propiedades coincidiendo con los argumentos que se pasan a la función
// Devuelve el objeto
// Tu código:
let nuevoObj = {
nombre: nombre,
email: email,
password: password,
}
return nuevoObj;
}
function tieneEmail(usuario) {
// Devuelve "true" si el usuario tiene un valor definido para la propiedad "email"
// De lo contratio, devuelve "false"
// Tu código:
if(usuario["email"]){
return true;
}
return false;
}
function tienePropiedad(objeto, propiedad) {
// Devuelve "true" si el objeto tiene el valor del argumento "propiedad"
// "propiedad" es un string
// De lo contrario, devuelve "false"
// Tu código:
if(objeto[propiedad]){
return true;
}
return false;
}
function verificarPassword(usuario, password) {
// Comprueba si la "password" enviada coincide con la propiedad "password" del objeto "usuario"
// Devuelve "true" si coinciden
// De lo contrario, devuelve "false"
// // Tu código:
if(usuario.password === password){
return true;
}
return false;
}
function actualizarPassword(usuario, nuevaPassword) {
// Reemplaza la contraseña existente en el objeto "usuario" con el valor de "nuevagPassword"
// Devuelve el objeto
// Tu código:
usuario.password = nuevaPassword;
return usuario;
}
function agregarAmigo(usuario, nuevoAmigo) {
// "usuario" tiene una propiedad llamada "amigos" que es un array
// Agrega "nuevoAmigo" al final de ese array
// Devuelve el objeto "usuario"
// // Tu código:
usuario.amigos.push(nuevoAmigo);
return usuario;
}
function pasarUsuarioAPremium(usuarios) {
// "usuarios" es un array de objetos "usuario"
// Cada objeto "usuario" tiene la propiedad "esPremium"
// Define cada propiedad "esPremium" de cada objeto como "true"
// Devuelve el array de usuarios
// Tu código:
for (let i = 0; i < usuarios.length; i++){
usuarios[i].esPremium = true;
}
return usuarios;
}
function sumarLikesDeUsuario(usuario) {
// "usuario" tiene una propiedad llamada "posts" que es un array
// "posts" es un array de objetos "post"
// Cada objeto "post" tiene una propiedad llamada "likes" que es un entero (int/integer)
// Suma todos los likes de todos los objetos "post"
// Devuelve la suma
// Tu código:
let suma =0;
for(let i = 0; i < usuario.posts.length; i ++){
suma = suma + usuario.posts[i].likes;
}
return suma;
}
function agregarMetodoCalculoDescuento(producto) {
// Agregar un método (función) al objeto "producto" llamado "calcularPrecioDescuento"
// Este método debe multiplicar el "precio" del "producto" ("producto.precio" o "producto[precio]") y "porcentajeDeDescuento" para obtener el descuento
// El método resta el descuento del precio y devuelve el precio con descuento
// Devuelve el objeto "producto" al final de la función
// Ejemplo:
// producto.precio -> 20
// producto.porcentajeDeDescuento -> 0.2 (o simplemente ".2")
// producto.calcularPrecioDescuento() -> 20 - (20 * 0.2)
// Tu código:
producto.calcularPrecioDescuento = function() {
return this.precio - (this.precio * this.porcentajeDeDescuento);
}
return producto;
}
// No modificar nada debajo de esta línea
// --------------------------------
module.exports = {
crearGato,
agregarPropiedad,
invocarMetodo,
multiplicarNumeroDesconocidoPorCinco,
eliminarPropiedad,
nuevoUsuario,
tieneEmail,
tienePropiedad,
verificarPassword,
actualizarPassword,
agregarAmigo,
pasarUsuarioAPremium,
sumarLikesDeUsuario,
agregarMetodoCalculoDescuento
};