Skip to content

Commit 0f1fd3c

Browse files
committed
#19 - JavaScript
1 parent 3fc520a commit 0f1fd3c

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
// ** EJERCICIO
2+
3+
const diasSemana = Object.freeze({
4+
1: 'Lunes',
5+
2: 'Martes',
6+
3: 'Miércoles',
7+
4: 'Jueves',
8+
5: 'Viernes',
9+
6: 'Sábado',
10+
7: 'Domingo'
11+
})
12+
13+
function diaSemana(num) {
14+
return diasSemana[num] || console.error('Número inválido')
15+
}
16+
17+
console.log(diaSemana(7))
18+
19+
20+
// ** DIFICULTAD EXTRA ** -------------------------------------------------------------------------------------------------------------------------------------
21+
22+
const EstadoPedido = Object.freeze({
23+
1: 'PENDIENTE',
24+
2: 'ENVIADO',
25+
3: 'ENTREGADO',
26+
4: 'CANCELADO'
27+
});
28+
29+
class Pedido {
30+
constructor(id) {
31+
this.id = id;
32+
this.estado = EstadoPedido[1];
33+
}
34+
35+
enviar() {
36+
if (this.estado === EstadoPedido[1]) {
37+
this.estado = EstadoPedido[2];
38+
console.log(`El estado del pedido ha cambiado a: ${EstadoPedido[2]}`);
39+
} else {
40+
console.log(`El pedido no se puede enviar porque se encuentra en estado: ${this.estado}`);
41+
}
42+
}
43+
44+
cancelar() {
45+
if (this.estado !== EstadoPedido[4]) {
46+
this.estado = EstadoPedido[4];
47+
console.log(`El estado del pedido ha cambiado a: ${EstadoPedido[4]}`);
48+
} else {
49+
console.log(`El pedido ya está cancelado.`);
50+
}
51+
}
52+
53+
entregar() {
54+
if (this.estado === EstadoPedido[2]) {
55+
this.estado = EstadoPedido[3];
56+
console.log(`El estado del pedido ha cambiado a: ${EstadoPedido[3]}`);
57+
} else {
58+
console.log(`El pedido no se puede entregar porque se encuentra en estado: ${this.estado}`);
59+
}
60+
}
61+
62+
mostrarEstado() {
63+
switch (this.estado) {
64+
case EstadoPedido[1]:
65+
console.log(`El pedido ${this.id} está en estado: ${EstadoPedido[1]}`);
66+
break;
67+
case EstadoPedido[2]:
68+
console.log(`El pedido ${this.id} está en estado: ${EstadoPedido[2]}`);
69+
break;
70+
case EstadoPedido[3]:
71+
console.log(`El pedido ${this.id} está en estado: ${EstadoPedido[3]}`);
72+
break;
73+
case EstadoPedido[4]:
74+
console.log(`El pedido ${this.id} está en estado: ${EstadoPedido[4]}`);
75+
break;
76+
default:
77+
console.log(`Estado desconocido para el pedido ${this.id}`);
78+
}
79+
}
80+
}
81+
82+
// Crear un pedido
83+
const pedido1 = new Pedido(1);
84+
85+
pedido1.mostrarEstado(); // El pedido 1 está en estado: PENDIENTE
86+
pedido1.enviar(); // El estado del pedido ha cambiado a: ENVIADO
87+
pedido1.enviar(); // El pedido no se puede enviar porque se encuentra en estado: ENVIADO
88+
pedido1.entregar(); // El estado del pedido ha cambiado a: ENTREGADO
89+
pedido1.cancelar(); // El estado del pedido ha cambiado a: CANCELADO
90+
pedido1.mostrarEstado(); // El pedido 1 está en estado: CANCELADO

0 commit comments

Comments
 (0)