Skip to content

Commit 0164692

Browse files
authored
Merge pull request mouredev#4489 from agusrosero/develop
#19 - Javascript
2 parents cbbe1ce + 6861120 commit 0164692

File tree

1 file changed

+111
-0
lines changed

1 file changed

+111
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
/*
2+
* EJERCICIO:
3+
* Empleando tu lenguaje, explora la definición del tipo de dato
4+
* que sirva para definir enumeraciones (Enum).
5+
* Crea un Enum que represente los días de la semana del lunes
6+
* al domingo, en ese orden. Con ese enumerado, crea una operación
7+
* que muestre el nombre del día de la semana dependiendo del número entero
8+
* utilizado (del 1 al 7).
9+
*/
10+
const diasSemana = Object.freeze({
11+
LUNES: "Lunes",
12+
MARTES: "Martes",
13+
MIERCOLES: "Miercoles",
14+
JUEVES: "Jueves",
15+
VIERNES: "Viernes",
16+
SABADO: "Sabado",
17+
DOMINGO: "Domingo",
18+
});
19+
console.log(diasSemana);
20+
21+
function getWeekdays(num) {
22+
switch (num) {
23+
case 1:
24+
console.log(diasSemana.LUNES);
25+
break;
26+
case 2:
27+
console.log(diasSemana.MARTES);
28+
break;
29+
case 3:
30+
console.log(diasSemana.MIERCOLES);
31+
break;
32+
case 4:
33+
console.log(diasSemana.JUEVES);
34+
break;
35+
case 5:
36+
console.log(diasSemana.VIERNES);
37+
break;
38+
case 6:
39+
console.log(diasSemana.SABADO);
40+
break;
41+
case 7:
42+
console.log(diasSemana.DOMINGO);
43+
break;
44+
}
45+
}
46+
47+
getWeekdays(5);
48+
49+
/**
50+
* DIFICULTAD EXTRA (opcional):
51+
* Crea un pequeño sistema de gestión del estado de pedidos.
52+
* Implementa una clase que defina un pedido con las siguientes características:
53+
* - El pedido tiene un identificador y un estado.
54+
* - El estado es un Enum con estos valores: PENDIENTE, ENVIADO, ENTREGADO y CANCELADO.
55+
* - Implementa las funciones que sirvan para modificar el estado:
56+
* - Pedido enviado
57+
* - Pedido cancelado
58+
* - Pedido entregado
59+
* (Establece una lógica, por ejemplo, no se puede entregar si no se ha enviado, etc...)
60+
* - Implementa una función para mostrar un texto descriptivo según el estado actual.
61+
* - Crea diferentes pedidos y muestra cómo se interactúa con ellos.
62+
*/
63+
const estados = Object.freeze({
64+
PENDIENTE: "Pendiente",
65+
ENVIADO: "Enviado",
66+
ENTREGADO: "Entregado",
67+
CANCELADO: "Cancelado",
68+
});
69+
70+
class GestionEstadoPedidos {
71+
constructor(id) {
72+
this.id = id;
73+
this.estado = estados.PENDIENTE;
74+
}
75+
76+
pedidoEnviado() {
77+
if (this.estado === estados.ENVIADO) {
78+
console.log("Pedido enviado con exito");
79+
} else {
80+
console.log("Error en el envio del pedido");
81+
}
82+
}
83+
84+
pedidoCancelado() {
85+
if (this.estado === estados.CANCELADO) {
86+
console.log("Pedido cancelado");
87+
} else {
88+
console.log("Error al cancelar el pedido");
89+
}
90+
}
91+
92+
pedidoEntregado() {
93+
if (this.estado === estados.ENTREGADO) {
94+
console.log("Pedidos entregado correctamente");
95+
} else {
96+
console.log("Error al entregar el pedido");
97+
}
98+
}
99+
100+
textoDescriptivo() {
101+
console.log(`Estado del pedido: ${this.estado}`);
102+
}
103+
}
104+
105+
const pedido1 = new GestionEstadoPedidos();
106+
pedido1.textoDescriptivo();
107+
pedido1.pedidoEnviado();
108+
109+
const pedido2 = new GestionEstadoPedidos();
110+
pedido2.textoDescriptivo();
111+
pedido2.pedidoCancelado();

0 commit comments

Comments
 (0)