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