a

2999a commited on
Commit
31f3f8a
·
verified ·
1 Parent(s): 191968e

Upload via hfc (batch)

Browse files

Uploaded using hfc tool

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +10 -0
  2. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/02-Lecturas recomendadas.txt +1 -0
  3. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/02-Resumen.html +0 -0
  4. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Lecturas recomendadas.txt +1 -0
  5. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Métodos push y pop para modificar arrays en JavaScript.mp4 +3 -0
  6. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Métodos push y pop para modificar arrays en JavaScript.vtt +343 -0
  7. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Resumen.html +0 -0
  8. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-clase-push-pop_8fa0e05d-0543-4a98-9958-677a086bccb5.js +55 -0
  9. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Lecturas recomendadas.txt +1 -0
  10. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Métodos map y forEach en JavaScript Uso y Ejemplos Prácticos.mp4 +3 -0
  11. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Métodos map y forEach en JavaScript Uso y Ejemplos Prácticos.vtt +907 -0
  12. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Resumen.html +0 -0
  13. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-clase-map-foreach_d7b1a93f-0f56-4fd3-a419-c28c09dc2a16.js +40 -0
  14. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Lecturas recomendadas.txt +1 -0
  15. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Métodos Filter y Reduce en JavaScript Uso y Ejemplos Prácticos.mp4 +3 -0
  16. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Métodos Filter y Reduce en JavaScript Uso y Ejemplos Prácticos.vtt +1198 -0
  17. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Resumen.html +0 -0
  18. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-clase-filter-reduce_e813ab75-e07c-4b5d-aad3-8bfc93813d7a.js +45 -0
  19. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Lecturas recomendadas.txt +1 -0
  20. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Métodos find y findIndex en JavaScript Uso y ejemplos prácticos.mp4 +3 -0
  21. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Métodos find y findIndex en JavaScript Uso y ejemplos prácticos.vtt +311 -0
  22. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Resumen.html +0 -0
  23. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-clase-find-findindex_ec26c6f8-de53-4d67-8a48-801ff513a78b.js +51 -0
  24. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Lecturas recomendadas.txt +1 -0
  25. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Resumen.html +0 -0
  26. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Uso del método slice para extraer porciones de un array en JavaScript.mp4 +3 -0
  27. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Uso del método slice para extraer porciones de un array en JavaScript.vtt +362 -0
  28. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-clase-slice_534b3124-8beb-4455-8f09-12c56b9174b6.js +10 -0
  29. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Lecturas recomendadas.txt +1 -0
  30. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Resumen.html +0 -0
  31. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Uso del Spread Operator en JavaScript Copia Combinación y Más.mp4 +3 -0
  32. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Uso del Spread Operator en JavaScript Copia Combinación y Más.vtt +462 -0
  33. subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-clase-spread-operator_13d4bad1-6c65-47e2-bd80-89478793784f.js +36 -0
  34. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Lecturas recomendadas.txt +1 -0
  35. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Programación Orientada a Objetos en JavaScript Conceptos y Práctica.mp4 +3 -0
  36. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Programación Orientada a Objetos en JavaScript Conceptos y Práctica.vtt +529 -0
  37. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Resumen.html +0 -0
  38. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-index_2f0c6cdf-1728-43de-b87c-10c86349e8e1.js +79 -0
  39. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Creación y Manipulación de Objetos en JavaScript.mp4 +3 -0
  40. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Creación y Manipulación de Objetos en JavaScript.vtt +640 -0
  41. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Lecturas recomendadas.txt +1 -0
  42. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Resumen.html +0 -0
  43. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-index_1e469f9b-6fdc-4de4-9e66-cba3a484b09b.js +79 -0
  44. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/03-Función constructora y gestión de instancias en JavaScript.mp4 +3 -0
  45. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/03-Función constructora y gestión de instancias en JavaScript.vtt +873 -0
  46. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/03-Resumen.html +0 -0
  47. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-Clases en JavaScript Creación y Uso de Objetos con Sintaxis Moderna.mp4 +3 -0
  48. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-Clases en JavaScript Creación y Uso de Objetos con Sintaxis Moderna.vtt +408 -0
  49. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-Lecturas recomendadas.txt +1 -0
  50. subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-index_36cbd56e-6114-4e82-92ba-c0c0792e2d31.js +13 -0
.gitattributes CHANGED
@@ -207,3 +207,13 @@ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript
207
  subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/03-Funciones[[:space:]]y[[:space:]]This/07-Fundamentos[[:space:]]del[[:space:]]Desarrollo[[:space:]]Web[[:space:]]Frontend[[:space:]]y[[:space:]]Backend.mp4 filter=lfs diff=lfs merge=lfs -text
208
  subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/01-Arrays[[:space:]]Propiedades[[:space:]]Acceso[[:space:]]y[[:space:]]Creación[[:space:]]en[[:space:]]Programación.mp4 filter=lfs diff=lfs merge=lfs -text
209
  subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/02-Mutabilidad[[:space:]]e[[:space:]]inmutabilidad[[:space:]]en[[:space:]]arrays[[:space:]]conceptos[[:space:]]y[[:space:]]ejemplos[[:space:]]prácticos.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
207
  subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/03-Funciones[[:space:]]y[[:space:]]This/07-Fundamentos[[:space:]]del[[:space:]]Desarrollo[[:space:]]Web[[:space:]]Frontend[[:space:]]y[[:space:]]Backend.mp4 filter=lfs diff=lfs merge=lfs -text
208
  subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/01-Arrays[[:space:]]Propiedades[[:space:]]Acceso[[:space:]]y[[:space:]]Creación[[:space:]]en[[:space:]]Programación.mp4 filter=lfs diff=lfs merge=lfs -text
209
  subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/02-Mutabilidad[[:space:]]e[[:space:]]inmutabilidad[[:space:]]en[[:space:]]arrays[[:space:]]conceptos[[:space:]]y[[:space:]]ejemplos[[:space:]]prácticos.mp4 filter=lfs diff=lfs merge=lfs -text
210
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/03-Métodos[[:space:]]push[[:space:]]y[[:space:]]pop[[:space:]]para[[:space:]]modificar[[:space:]]arrays[[:space:]]en[[:space:]]JavaScript.mp4 filter=lfs diff=lfs merge=lfs -text
211
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/04-Métodos[[:space:]]map[[:space:]]y[[:space:]]forEach[[:space:]]en[[:space:]]JavaScript[[:space:]]Uso[[:space:]]y[[:space:]]Ejemplos[[:space:]]Prácticos.mp4 filter=lfs diff=lfs merge=lfs -text
212
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/05-Métodos[[:space:]]Filter[[:space:]]y[[:space:]]Reduce[[:space:]]en[[:space:]]JavaScript[[:space:]]Uso[[:space:]]y[[:space:]]Ejemplos[[:space:]]Prácticos.mp4 filter=lfs diff=lfs merge=lfs -text
213
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/06-Métodos[[:space:]]find[[:space:]]y[[:space:]]findIndex[[:space:]]en[[:space:]]JavaScript[[:space:]]Uso[[:space:]]y[[:space:]]ejemplos[[:space:]]prácticos.mp4 filter=lfs diff=lfs merge=lfs -text
214
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/07-Uso[[:space:]]del[[:space:]]método[[:space:]]slice[[:space:]]para[[:space:]]extraer[[:space:]]porciones[[:space:]]de[[:space:]]un[[:space:]]array[[:space:]]en[[:space:]]JavaScript.mp4 filter=lfs diff=lfs merge=lfs -text
215
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/04-Manipulación[[:space:]]de[[:space:]]Arrays/08-Uso[[:space:]]del[[:space:]]Spread[[:space:]]Operator[[:space:]]en[[:space:]]JavaScript[[:space:]]Copia[[:space:]]Combinación[[:space:]]y[[:space:]]Más.mp4 filter=lfs diff=lfs merge=lfs -text
216
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/05-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/01-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos[[:space:]]en[[:space:]]JavaScript[[:space:]]Conceptos[[:space:]]y[[:space:]]Práctica.mp4 filter=lfs diff=lfs merge=lfs -text
217
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/05-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/02-Creación[[:space:]]y[[:space:]]Manipulación[[:space:]]de[[:space:]]Objetos[[:space:]]en[[:space:]]JavaScript.mp4 filter=lfs diff=lfs merge=lfs -text
218
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/05-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/03-Función[[:space:]]constructora[[:space:]]y[[:space:]]gestión[[:space:]]de[[:space:]]instancias[[:space:]]en[[:space:]]JavaScript.mp4 filter=lfs diff=lfs merge=lfs -text
219
+ subir/Curso[[:space:]]de[[:space:]]Fundamentos[[:space:]]de[[:space:]]JavaScript/05-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/04-Clases[[:space:]]en[[:space:]]JavaScript[[:space:]]Creación[[:space:]]y[[:space:]]Uso[[:space:]]de[[:space:]]Objetos[[:space:]]con[[:space:]]Sintaxis[[:space:]]Moderna.mp4 filter=lfs diff=lfs merge=lfs -text
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/02-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Métodos push y pop para modificar arrays en JavaScript.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:366fff0b24b01501e3b2bc846a28ba2630e20fad85937fe1324dd6fa10d9cca1
3
+ size 21702850
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Métodos push y pop para modificar arrays en JavaScript.vtt ADDED
@@ -0,0 +1,343 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:02.900
4
+ En esta clase vamos a hablar de dos
5
+ métodos
6
+
7
+ 00:02.900 --> 00:05.700
8
+ que nos modifican el array original.
9
+
10
+ 00:05.700 --> 00:09.000
11
+ Estos métodos son tanto push como pop.
12
+
13
+ 00:09.000 --> 00:13.000
14
+ Lo que hace push es añadir uno o más
15
+ elementos
16
+
17
+ 00:13.000 --> 00:14.400
18
+ al final de un
19
+ array,
20
+
21
+ 00:14.400 --> 00:17.900
22
+ y adicional nos va a devolver esa longitud
23
+ del array.
24
+
25
+ 00:17.900 --> 00:20.100
26
+ Ya lo vamos a ver en juego cómo sería.
27
+
28
+ 00:20.100 --> 00:23.400
29
+ Sin embargo, en la gráfica tendríamos un
30
+ array
31
+
32
+ 00:23.400 --> 00:26.000
33
+ que tiene, en este caso, cinco posiciones,
34
+
35
+ 00:26.000 --> 00:27.300
36
+ es de
37
+ números,
38
+
39
+ 00:27.300 --> 00:31.100
40
+ y lo que podemos hacer es agregarle a ese
41
+ mismo array
42
+
43
+ 00:31.100 --> 00:35.300
44
+ otro valor, en este caso le estamos
45
+ agregando el número 27.
46
+
47
+ 00:35.300 --> 00:38.900
48
+ Este array es el mismo, el primero, el
49
+ primero,
50
+
51
+ 00:38.900 --> 00:40.800
52
+ no estamos creando uno
53
+ nuevo,
54
+
55
+ 00:40.800 --> 00:42.800
56
+ sino que estamos haciendo una modificación.
57
+
58
+ 00:42.800 --> 00:45.200
59
+ Eso es súper importante tenerlo en cuenta.
60
+
61
+ 00:45.200 --> 00:48.000
62
+ Entonces, veamos cómo sería en código.
63
+
64
+ 00:48.000 --> 00:50.800
65
+ Voy a colocar un título que nos
66
+ diga
67
+
68
+ 00:50.800 --> 00:57.600
69
+ métodos que modifican el array original.
70
+
71
+ 00:57.600 --> 00:59.600
72
+ Original
73
+ array.
74
+
75
+ 00:59.600 --> 01:04.600
76
+ Y vamos a colocar que esto es básicamente
77
+ mutabilidad.
78
+
79
+ 01:04.600 --> 01:07.600
80
+ Esto nos está mutando justamente nuestro
81
+ array original.
82
+
83
+ 01:07.600 --> 01:09.600
84
+ Entonces,
85
+ mutability.
86
+
87
+ 01:09.600 --> 01:10.600
88
+ Listo.
89
+
90
+ 01:10.600 --> 01:13.600
91
+ El primero de ellos, por supuesto, es push.
92
+
93
+ 01:13.600 --> 01:16.300
94
+ Y lo que vamos a hacer es crear una
95
+ variable
96
+
97
+ 01:16.300 --> 01:19.600
98
+ que se llame, por ejemplo, países, en inglés,
99
+ countries.
100
+
101
+ 01:19.600 --> 01:22.600
102
+ Y lo que hacemos es crear nuestro
103
+ array
104
+
105
+ 01:22.600 --> 01:24.600
106
+ con una sintaxis
107
+ normal.
108
+
109
+ 01:24.600 --> 01:27.600
110
+ Y lo que hacemos es decirle, por ejemplo, USA.
111
+
112
+ 01:27.600 --> 01:31.100
113
+ Vamos a colocarle otro que sea, por ejemplo,
114
+ Canada.
115
+
116
+ 01:31.100 --> 01:34.600
117
+ Y vamos a colocar otro que sea
118
+ UK.
119
+
120
+ 01:34.600 --> 01:38.600
121
+ Estos countries, que aquí me faltó la E,
122
+
123
+ 01:38.600 --> 01:40.600
124
+ vamos a agregarle
125
+ otro.
126
+
127
+ 01:40.600 --> 01:41.600
128
+ ¿Cómo lo
129
+ hacemos?
130
+
131
+ 01:41.600 --> 01:44.600
132
+ Vamos a colocar const new countries.
133
+
134
+ 01:44.600 --> 01:46.100
135
+ New
136
+ countries.
137
+
138
+ 01:46.100 --> 01:48.600
139
+ Voy a colocarme esta variable
140
+ acá.
141
+
142
+ 01:48.600 --> 01:50.600
143
+ Voy a cambiarle la
144
+ C.
145
+
146
+ 01:50.600 --> 01:54.600
147
+ Y lo que hacemos es decir, countries.push.
148
+
149
+ 01:54.600 --> 01:57.600
150
+ En este caso, le estamos diciendo a ese
151
+ que nosotros
152
+
153
+ 01:57.600 --> 02:00.600
154
+ acabamos de crear, quiero que, por favor,
155
+
156
+ 02:00.600 --> 02:04.600
157
+ le agregues un valor determinado o varios
158
+ valores.
159
+
160
+ 02:04.600 --> 02:07.600
161
+ En este caso, voy a colocarle dos países
162
+ nuevos.
163
+
164
+ 02:07.600 --> 02:11.600
165
+ Vamos a colocarle, por ejemplo, Alemania,
166
+ Germany.
167
+
168
+ 02:11.600 --> 02:14.600
169
+ Y vamos a colocarle otro, por ejemplo,
170
+ Australia.
171
+
172
+ 02:14.600 --> 02:15.600
173
+ Australia.
174
+
175
+ 02:15.600 --> 02:17.600
176
+ Australia.
177
+
178
+ 02:17.600 --> 02:18.600
179
+ Listo.
180
+
181
+ 02:18.600 --> 02:21.600
182
+ El punto acá importante es revisar, uno,
183
+
184
+ 02:21.600 --> 02:25.600
185
+ ¿qué nos arrojaría o cómo se modificaría
186
+ nuestro array
187
+
188
+ 02:25.600 --> 02:27.600
189
+ original, que sería
190
+ countries?
191
+
192
+ 02:27.600 --> 02:32.600
193
+ Y también, ¿qué hace esta operación que
194
+ estamos haciendo?
195
+
196
+ 02:32.600 --> 02:35.600
197
+ Entonces, sería console.log de
198
+ quién?
199
+
200
+ 02:35.600 --> 02:36.600
201
+ De new
202
+ countries.
203
+
204
+ 02:36.600 --> 02:37.600
205
+ Entonces,
206
+ veamos.
207
+
208
+ 02:37.600 --> 02:40.600
209
+ Vamos a correr nuestro
210
+ código.
211
+
212
+ 02:40.600 --> 02:42.600
213
+ Este caso sería
214
+ push.
215
+
216
+ 02:42.600 --> 02:43.600
217
+ Listo.
218
+
219
+ 02:43.600 --> 02:45.600
220
+ Entonces, tenemos nuestro array original,
221
+
222
+ 02:45.600 --> 02:48.600
223
+ que sería USA, Canadá, Canadá,
224
+ UK.
225
+
226
+ 02:48.600 --> 02:52.600
227
+ Y mira que nos estuvo modificando ese
228
+ valor original que le
229
+
230
+ 02:52.600 --> 02:54.600
231
+ agregamos al
232
+ principio.
233
+
234
+ 02:54.600 --> 02:58.600
235
+ Y seguido de esto, nos dice que new
236
+ countries es un valor.
237
+
238
+ 02:58.600 --> 03:01.600
239
+ Es decir, que esta operación como tal,
240
+
241
+ 03:01.600 --> 03:05.600
242
+ aparte de que nos modifica, nos está
243
+ devolviendo ese valor.
244
+
245
+ 03:05.600 --> 03:08.600
246
+ Y ese valor es la nueva longitud del array.
247
+
248
+ 03:08.600 --> 03:12.600
249
+ En este caso, por supuesto, tenemos 1, 2, 3,
250
+ 4 y 5.
251
+
252
+ 03:12.600 --> 03:15.600
253
+ Propiedades o valores en este array.
254
+
255
+ 03:15.600 --> 03:18.600
256
+ Por otro lado, tenemos
257
+ pop.
258
+
259
+ 03:18.600 --> 03:21.600
260
+ ¿Qué pop nos
261
+ hace?
262
+
263
+ 03:21.600 --> 03:25.600
264
+ Primero, nos elimina el último elemento
265
+ del array.
266
+
267
+ 03:25.600 --> 03:29.600
268
+ Y adicional, también nos devuelve ese valor.
269
+
270
+ 03:29.600 --> 03:30.600
271
+ ¿Cómo
272
+ sería?
273
+
274
+ 03:30.600 --> 03:33.600
275
+ Entonces, vamos a colocar por acá pop,
276
+
277
+ 03:33.600 --> 03:34.600
278
+ que sería el otro
279
+ método.
280
+
281
+ 03:34.600 --> 03:38.600
282
+ Y vamos a colocarle una variable que se
283
+ llama removed.
284
+
285
+ 03:38.600 --> 03:42.600
286
+ Removed
287
+ country.
288
+
289
+ 03:42.600 --> 03:45.600
290
+ Y aquí, lo que vamos a hacer es tomar
291
+ nuestro countries,
292
+
293
+ 03:45.600 --> 03:49.600
294
+ el original, el array que creamos al
295
+ principio,
296
+
297
+ 03:49.600 --> 03:52.600
298
+ y le vamos a decir
299
+ pop.
300
+
301
+ 03:52.600 --> 03:55.600
302
+ Luego de este pop, vamos a hacer de nuevo
303
+ lo mismo.
304
+
305
+ 03:55.600 --> 03:57.600
306
+ Vamos a colocar dos
307
+ console.log.
308
+
309
+ 03:57.600 --> 04:01.600
310
+ El primero para revisar esta variable que
311
+ creamos.
312
+
313
+ 04:01.600 --> 04:06.600
314
+ Y el otro para colocar también el array
315
+ que nosotros creamos.
316
+
317
+ 04:06.600 --> 04:08.600
318
+ Vamos a ver si se modificó, qué pasó con él.
319
+
320
+ 04:08.600 --> 04:11.600
321
+ Entonces, vamos a correr el
322
+ código.
323
+
324
+ 04:11.600 --> 04:15.600
325
+ Y aquí vemos, efectivamente, que countries
326
+ fue modificado de nuevo.
327
+
328
+ 04:15.600 --> 04:18.600
329
+ Le quitó el último
330
+ elemento.
331
+
332
+ 04:18.600 --> 04:25.600
333
+ Y adicional, nos devuelve ese elemento que
334
+ fue removido.
335
+
336
+ 04:25.600 --> 04:30.600
337
+ Aquí voy a colocarle
338
+ country.
339
+
340
+ 04:30.600 --> 04:36.600
341
+ Y ya nos quedaría muy bien
342
+ escrito.
343
+
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/03-clase-push-pop_8fa0e05d-0543-4a98-9958-677a086bccb5.js ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Methods that modify the original array (Mutability).
2
+
3
+ // push()
4
+
5
+ const countries = ['USA', 'Canada', 'UK']
6
+ const newCountries = countries.push('Germany', 'Australia')
7
+
8
+ console.log(countries)
9
+ console.log(newCountries)
10
+
11
+ // pop()
12
+
13
+ const removedCountry = countries.pop()
14
+
15
+ console.log(countries)
16
+ console.log(removedCountry)
17
+
18
+ // Exercise: Managing a Stack
19
+
20
+ let bookCart = []
21
+
22
+ const ADD_TO_CART_ACTION = 'addToCart'
23
+ const REMOVE_FROM_CART_ACTION = 'removeFromCart'
24
+ const VIEW_CART_ACTION = 'viewCart'
25
+
26
+ function viewCart () {
27
+ console.log('Current Cart of Books: ', bookCart)
28
+ }
29
+
30
+ function performCartActions (action, newBook) {
31
+ switch (action) {
32
+ case ADD_TO_CART_ACTION:
33
+ bookCart.push(newBook)
34
+ break;
35
+ case REMOVE_FROM_CART_ACTION:
36
+ if (bookCart.length === 0) {
37
+ console.log('Cart is empty. No books to remove.')
38
+ } else {
39
+ const removedBook = bookCart.pop()
40
+ console.log(`Removed book from the cart: ${removedBook}`)
41
+ }
42
+ break;
43
+ case VIEW_CART_ACTION:
44
+ viewCart()
45
+ break;
46
+ default:
47
+ console.log('Invalid action. Please choose a vaid option.')
48
+ }
49
+ }
50
+
51
+ performCartActions(ADD_TO_CART_ACTION, 'Think like a monk')
52
+ performCartActions(VIEW_CART_ACTION)
53
+ performCartActions(ADD_TO_CART_ACTION, 'Ego is the enemy.')
54
+ performCartActions(VIEW_CART_ACTION)
55
+ performCartActions(REMOVE_FROM_CART_ACTION)
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Métodos map y forEach en JavaScript Uso y Ejemplos Prácticos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c3304ffb53c84efc083f4b6d3dd54fed261c7899d7ed64ca436ced2f32fcd2a6
3
+ size 68869445
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Métodos map y forEach en JavaScript Uso y Ejemplos Prácticos.vtt ADDED
@@ -0,0 +1,907 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:03.600
4
+ En esta clase vamos a ver dos métodos de
5
+ arrays
6
+
7
+ 00:03.600 --> 00:06.480
8
+ que no modifican el array
9
+ original,
10
+
11
+ 00:06.480 --> 00:09.380
12
+ pero que sí iteran sobre esos arrays.
13
+
14
+ 00:09.380 --> 00:12.540
15
+ Entonces, vamos a revisar el primero,
16
+ que es map.
17
+
18
+ 00:12.540 --> 00:16.240
19
+ Resulta que map es uno de los métodos más
20
+ utilizados
21
+
22
+ 00:16.240 --> 00:20.200
23
+ en arrays, y justamente nos permite
24
+ aplicar una función
25
+
26
+ 00:20.200 --> 00:22.340
27
+ a cada uno de los elementos del array,
28
+
29
+ 00:22.340 --> 00:25.240
30
+ y también nos permite construir un nuevo
31
+ array
32
+
33
+ 00:25.240 --> 00:27.180
34
+ con el
35
+ resultado.
36
+
37
+ 00:27.180 --> 00:28.540
38
+ ¿Cómo se vería
39
+ eso?
40
+
41
+ 00:28.540 --> 00:31.860
42
+ Tendríamos, por ejemplo, un array a este lado,
43
+
44
+ 00:31.860 --> 00:33.280
45
+ que tiene cinco
46
+ posiciones.
47
+
48
+ 00:33.280 --> 00:37.600
49
+ En este caso, los números son 2, 4, 8,
50
+ 10 y 12.
51
+
52
+ 00:37.600 --> 00:41.200
53
+ Pero si le aplicamos una función a cada uno,
54
+
55
+ 00:41.200 --> 00:44.880
56
+ esta función en este caso puede ser que se
57
+ multiplique por 2.
58
+
59
+ 00:44.880 --> 00:48.160
60
+ Aquí estamos viendo que el resultado sería
61
+ un nuevo
62
+
63
+ 00:48.160 --> 00:52.440
64
+ array, y ese array tendría que el
65
+ resultado de haber hecho
66
+
67
+ 00:52.440 --> 00:55.600
68
+ justamente esta función por cada uno de
69
+ esos elementos.
70
+
71
+ 00:55.600 --> 00:59.640
72
+ Entonces, si decimos 2 por 2, 4, y el
73
+ resultado se vería
74
+
75
+ 00:59.640 --> 01:00.960
76
+ inmediatamente
77
+ acá.
78
+
79
+ 01:00.960 --> 01:03.800
80
+ Vamos a realizar eso en el código para que
81
+ veamos mucho
82
+
83
+ 01:03.800 --> 01:06.280
84
+ mejor cómo es que esto
85
+ funciona.
86
+
87
+ 01:06.280 --> 01:09.960
88
+ Tendríamos, por ejemplo, acá nuestro
89
+ método map,
90
+
91
+ 01:09.960 --> 01:11.960
92
+ y vamos a crear una
93
+ constante.
94
+
95
+ 01:11.960 --> 01:14.720
96
+ En este caso, vamos a decir que es numbers,
97
+
98
+ 01:14.720 --> 01:17.500
99
+ y vamos a colocarle unos
100
+ números.
101
+
102
+ 01:17.500 --> 01:23.000
103
+ En este caso, le voy a poner del 1 al 5, 2, 3,
104
+ 4 y 5.
105
+
106
+ 01:23.000 --> 01:28.360
107
+ Y seguido, lo que vamos a hacer es colocar
108
+ una variable para
109
+
110
+ 01:28.360 --> 01:32.120
111
+ poder tomar ese nuevo array que nos va a
112
+ entregar punto map.
113
+
114
+ 01:32.120 --> 01:33.740
115
+ Entonces, ¿qué es lo que vamos a
116
+ hacer?
117
+
118
+ 01:33.740 --> 01:38.240
119
+ Vamos a decir que vamos a elevar los
120
+ números al mismo
121
+
122
+ 01:38.240 --> 01:39.680
123
+ número, es decir, al
124
+ cuadrado.
125
+
126
+ 01:39.680 --> 01:45.520
127
+ Entonces, vamos a decir squared, squared
128
+ numbers,
129
+
130
+ 01:45.520 --> 01:51.440
131
+ y vamos a decir numbers, que numbers punto
132
+ map.
133
+
134
+ 01:51.440 --> 01:53.560
135
+ Aquí es donde viene la
136
+ función.
137
+
138
+ 01:53.560 --> 01:54.800
139
+ Vamos a
140
+ aplicársela.
141
+
142
+ 01:54.800 --> 01:57.240
143
+ Entonces, sería en este caso,
144
+ num.
145
+
146
+ 01:57.240 --> 02:01.960
147
+ Vamos a decir que num es cada una de estas
148
+ posiciones.
149
+
150
+ 02:01.960 --> 02:04.440
151
+ Y seguido, vamos a colocar un arrow function,
152
+
153
+ 02:04.440 --> 02:07.960
154
+ que en este caso nos va a devolver algo
155
+ que nosotros
156
+
157
+ 02:07.960 --> 02:11.960
158
+ queremos en este caso, que es justamente
159
+ la multiplicación de
160
+
161
+ 02:11.960 --> 02:13.560
162
+ este número por el
163
+ mismo.
164
+
165
+ 02:13.560 --> 02:17.880
166
+ Entonces, tenemos acá, recibimos cada uno
167
+ de los valores y
168
+
169
+ 02:17.880 --> 02:21.960
170
+ vamos a retornar ese mismo valor
171
+ multiplicado por el mismo.
172
+
173
+ 02:21.960 --> 02:26.120
174
+ Vamos a revisar cómo sería eso, console.
175
+ log, ¿de quién?
176
+
177
+ 02:26.120 --> 02:32.160
178
+ De numbers y de estos números también
179
+ elevados al cuadrado.
180
+
181
+ 02:32.160 --> 02:37.360
182
+ Voy a colocar en node, clase, justamente, map.
183
+
184
+ 02:37.360 --> 02:39.800
185
+ Voy a correr este
186
+ código.
187
+
188
+ 02:39.800 --> 02:43.160
189
+ Y aquí ya estamos viendo que tenemos
190
+ nuestro array original
191
+
192
+ 02:43.160 --> 02:45.600
193
+ sin ningún tipo de
194
+ modificación.
195
+
196
+ 02:45.600 --> 02:50.360
197
+ Y adicional, tenemos un array nuevo en
198
+ donde estamos haciendo
199
+
200
+ 02:50.360 --> 02:54.200
201
+ la multiplicación del mismo número de cada
202
+ uno de ellos por
203
+
204
+ 02:54.200 --> 02:54.800
205
+ el
206
+ mismo.
207
+
208
+ 02:54.800 --> 02:57.680
209
+ Entonces, aquí estamos viendo el resultado
210
+ de hechos.
211
+
212
+ 02:57.680 --> 03:02.640
213
+ Seguido, tenemos otro método, que es el
214
+ método forEach.
215
+
216
+ 03:02.640 --> 03:07.120
217
+ Este método forEach lo que hace es iterar
218
+ sobre cada uno de los
219
+
220
+ 03:07.120 --> 03:10.760
221
+ elementos, al igual que punto map, pero en
222
+ este caso,
223
+
224
+ 03:10.760 --> 03:14.280
225
+ aparte de que también ejecuta una función
226
+ proporcionada para
227
+
228
+ 03:14.280 --> 03:18.720
229
+ cada uno de estos elementos, no nos crea
230
+ un nuevo array.
231
+
232
+ 03:18.720 --> 03:21.280
233
+ Nos va a devolver como el mismo número.
234
+
235
+ 03:21.280 --> 03:22.920
236
+ Entonces, ¿qué es lo que vamos a
237
+ hacer?
238
+
239
+ 03:22.920 --> 03:26.080
240
+ Dos, revisamos el array, la posición,
241
+
242
+ 03:26.080 --> 03:30.000
243
+ efectuamos una función y él nos va a
244
+ devolver algo,
245
+
246
+ 03:30.000 --> 03:33.000
247
+ pero ese algo no va a ser en forma de array.
248
+
249
+ 03:33.000 --> 03:35.680
250
+ Revisemos cómo sería esto en código.
251
+
252
+ 03:35.680 --> 03:40.920
253
+ Vamos a colocar forEach y por aquí vamos a
254
+ tener unas nuevas
255
+
256
+ 03:40.920 --> 03:41.840
257
+ variables.
258
+
259
+ 03:41.840 --> 03:47.320
260
+ Vamos a tener const, colors y aquí vamos a
261
+ colocar,
262
+
263
+ 03:47.320 --> 03:49.200
264
+ por ejemplo, algunos
265
+ colores.
266
+
267
+ 03:49.200 --> 03:56.240
268
+ Voy a colocar red, pink y blue, por decir
269
+ algo.
270
+
271
+ 03:56.240 --> 03:59.560
272
+ A estos colores, lo que le vamos a hacer
273
+ es iterarlos y voy
274
+
275
+ 03:59.560 --> 04:02.200
276
+ a retornar el valor de cada
277
+ uno.
278
+
279
+ 04:02.200 --> 04:03.560
280
+ Eso es lo único que quiero
281
+ hacer.
282
+
283
+ 04:03.560 --> 04:09.440
284
+ Entonces, voy a colocar const iterated colors.
285
+
286
+ 04:09.440 --> 04:11.640
287
+ Vamos a iterar esos
288
+ colores.
289
+
290
+ 04:11.640 --> 04:14.920
291
+ Y lo que hacemos es tomar nuestro array,
292
+ decirle, mira,
293
+
294
+ 04:14.920 --> 04:18.680
295
+ yo quiero que recorras cada una de las
296
+ posiciones,
297
+
298
+ 04:18.680 --> 04:22.480
299
+ voy a tener cada uno de los valores y a su
300
+ vez,
301
+
302
+ 04:22.480 --> 04:27.600
303
+ quiero que por favor me digas cuál es el
304
+ valor de cada una de
305
+
306
+ 04:27.600 --> 04:28.640
307
+ esas
308
+ posiciones.
309
+
310
+ 04:28.640 --> 04:31.480
311
+ Entonces, tenemos acá
312
+ color.
313
+
314
+ 04:31.480 --> 04:35.400
315
+ Y vamos a colocar nuevamente nuestro console.
316
+ log,
317
+
318
+ 04:35.400 --> 04:40.980
319
+ tanto con colors como con este iterated
320
+ colors.
321
+
322
+ 04:40.980 --> 04:43.980
323
+ Vamos a correr nuevamente nuestro programa
324
+ y nos dice que
325
+
326
+ 04:43.980 --> 04:48.640
327
+ tenemos colors, que es nuestro array
328
+ original y aquí nos va
329
+
330
+ 04:48.640 --> 04:52.080
331
+ a salir que iterated colors es indefinido.
332
+
333
+ 04:52.080 --> 04:56.680
334
+ Pero algo interesante es lo que sucedió
335
+ previo a esto.
336
+
337
+ 04:56.680 --> 04:59.360
338
+ Resulta que él sí hizo lo que nosotros
339
+ queríamos,
340
+
341
+ 04:59.360 --> 05:02.820
342
+ que era precisamente que recorriera todo
343
+ el array y que
344
+
345
+ 05:02.820 --> 05:06.440
346
+ cada vez que lo recorriera nos devolviera
347
+ el valor de cada uno
348
+
349
+ 05:06.440 --> 05:07.400
350
+ de los
351
+ elementos.
352
+
353
+ 05:07.400 --> 05:10.600
354
+ Entonces, aquí tenemos red, pink y blue.
355
+
356
+ 05:10.600 --> 05:15.520
357
+ Sí hizo lo que queríamos, pero ya
358
+ recordemos acá que él no nos
359
+
360
+ 05:15.520 --> 05:18.560
361
+ devuelve un array así como map, sino que
362
+ en este caso dice
363
+
364
+ 05:18.560 --> 05:21.640
365
+ como, no, pues, no te voy a devolver nada,
366
+ es decir,
367
+
368
+ 05:21.640 --> 05:25.600
369
+ te voy a devolver indefinido, pero sí voy
370
+ a hacer algo y ese
371
+
372
+ 05:25.600 --> 05:30.480
373
+ algo es arrojarte cada uno de los valores
374
+ de nuestro array.
375
+
376
+ 05:30.480 --> 05:33.680
377
+ Veamos ahora un ejemplo
378
+ aplicado.
379
+
380
+ 05:33.680 --> 05:37.760
381
+ Vamos a revisar este documento y tenemos
382
+ la conversión de
383
+
384
+ 05:37.760 --> 05:41.480
385
+ temperaturas de Fahrenheit a Celsius.
386
+
387
+ 05:41.480 --> 05:42.400
388
+ ¿Cómo sería
389
+ eso?
390
+
391
+ 05:42.400 --> 05:45.760
392
+ Vamos a crear un programa que tome las
393
+ temperaturas que están
394
+
395
+ 05:45.760 --> 05:49.320
396
+ en Fahrenheit como un input, es decir,
397
+ como entrada,
398
+
399
+ 05:49.320 --> 05:52.800
400
+ y lo que vamos a hacer es convertirlas a
401
+ Celsius.
402
+
403
+ 05:52.800 --> 05:55.400
404
+ En este caso nos dicen que debemos
405
+ utilizar la siguiente
406
+
407
+ 05:55.400 --> 05:56.560
408
+ fórmula.
409
+
410
+ 05:56.560 --> 05:59.560
411
+ Cuéntame en los comentarios, por favor,
412
+
413
+ 05:59.560 --> 06:01.800
414
+ ¿qué utilizarías en este
415
+ ejercicio?
416
+
417
+ 06:01.800 --> 06:04.080
418
+ Map o
419
+ foreach.
420
+
421
+ 06:04.080 --> 06:07.760
422
+ Vamos a revisar qué deberíamos utilizar en
423
+ este caso.
424
+
425
+ 06:07.760 --> 06:11.680
426
+ Entonces vamos a colocar por acá, exercise.
427
+
428
+ 06:11.680 --> 06:15.120
429
+ Y en este caso le vamos a colocar Fahrenheit.
430
+
431
+ 06:15.120 --> 06:18.640
432
+ Fahrenheit.
433
+
434
+ 06:18.640 --> 06:20.760
435
+ Vamos a ver si lo escribo
436
+ bien.
437
+
438
+ 06:20.760 --> 06:22.800
439
+ 2
440
+ Celsius.
441
+
442
+ 06:22.800 --> 06:23.320
443
+ Listo.
444
+
445
+ 06:23.320 --> 06:24.120
446
+ Conversion.
447
+
448
+ 06:24.120 --> 06:26.120
449
+ Conversion.
450
+
451
+ 06:26.120 --> 06:26.620
452
+ Muy
453
+ bien.
454
+
455
+ 06:26.620 --> 06:30.800
456
+ Vamos a tener una constante que nos va a
457
+ dar justamente las
458
+
459
+ 06:30.800 --> 06:32.560
460
+ temperaturas en
461
+ Fahrenheit.
462
+
463
+ 06:32.560 --> 06:36.200
464
+ Entonces voy a copiarme esto que acabé de
465
+ escribir y voy
466
+
467
+ 06:36.200 --> 06:40.120
468
+ a colocarle al principio temperaturas.
469
+
470
+ 06:40.120 --> 06:43.000
471
+ Temperaturas.
472
+
473
+ 06:43.000 --> 06:44.440
474
+ Listo.
475
+
476
+ 06:44.440 --> 06:45.640
477
+ En
478
+ Fahrenheit.
479
+
480
+ 06:45.640 --> 06:48.120
481
+ Entonces ya tenemos nuestra variable.
482
+
483
+ 06:48.120 --> 06:51.360
484
+ Esa variable va a ser un array y este
485
+ array va a tener
486
+
487
+ 06:51.360 --> 06:53.760
488
+ justamente las temperaturas, que va a ser,
489
+ por ejemplo,
490
+
491
+ 06:53.760 --> 07:00.440
492
+ 32, 68, 95, eso puede ser cualquier valor
493
+ que queramos,
494
+
495
+ 07:00.440 --> 07:04.040
496
+ y 212, por
497
+ ejemplo.
498
+
499
+ 07:04.040 --> 07:07.560
500
+ Seguido de esto, lo que debemos hacer es
501
+ la conversión de
502
+
503
+ 07:07.560 --> 07:10.480
504
+ esas temperaturas que están en Fahrenheit
505
+ a Celsius.
506
+
507
+ 07:10.480 --> 07:14.000
508
+ Entonces vamos a crearnos otra constante,
509
+ const,
510
+
511
+ 07:14.000 --> 07:17.840
512
+ temperaturas, voy a ahorrarme el hecho de
513
+ volver a colocar
514
+
515
+ 07:17.840 --> 07:21.120
516
+ temperaturas, y ahora voy a colocar Celsius,
517
+
518
+ 07:21.120 --> 07:23.320
519
+ que ya también lo escribí por
520
+ aquí.
521
+
522
+ 07:23.320 --> 07:26.040
523
+ Ahora, ¿qué sería
524
+ esto?
525
+
526
+ 07:26.040 --> 07:28.320
527
+ Por supuesto, nos tocaría tomar nuestro array,
528
+
529
+ 07:28.320 --> 07:31.160
530
+ que es el de las temperaturas en Fahrenheit,
531
+
532
+ 07:31.160 --> 07:36.240
533
+ seguido de el método, que en este caso
534
+ sería map,
535
+
536
+ 07:36.240 --> 07:41.480
537
+ precisamente porque queremos recibir
538
+ justamente un array con
539
+
540
+ 07:41.480 --> 07:44.960
541
+ las temperaturas, pero en este caso,
542
+ convertidas a Celsius.
543
+
544
+ 07:44.960 --> 07:46.840
545
+ Por eso que necesitamos un punto más,
546
+
547
+ 07:46.840 --> 07:51.080
548
+ porque necesitamos recibir un array que
549
+ sea las temperaturas
550
+
551
+ 07:51.080 --> 07:52.480
552
+ convertidas.
553
+
554
+ 07:52.480 --> 07:54.440
555
+ Entonces, ¿qué es lo que vamos a
556
+ colocar?
557
+
558
+ 07:54.440 --> 07:57.320
559
+ Vamos a escribir Fahrenheit, voy a tomarme
560
+ eso,
561
+
562
+ 07:57.320 --> 08:01.640
563
+ que sería como la temperatura o cada valor
564
+ en particular,
565
+
566
+ 08:01.640 --> 08:05.760
567
+ y lo que hacemos es aplicar la fórmula que
568
+ nos dieron acá,
569
+
570
+ 08:05.760 --> 08:07.640
571
+ por cada uno de los
572
+ elementos.
573
+
574
+ 08:07.640 --> 08:08.960
575
+ ¿Cómo sería esa
576
+ fórmula?
577
+
578
+ 08:08.960 --> 08:11.800
579
+ Entonces vamos a colocar, entre paréntesis,
580
+
581
+ 08:11.800 --> 08:16.920
582
+ 5 dividido 9, que es el primer valor que
583
+ tenemos acá,
584
+
585
+ 08:16.920 --> 08:20.920
586
+ seguido de una multiplicación, ¿de
587
+ quién?
588
+
589
+ 08:20.920 --> 08:24.600
590
+ De la temperatura en Fahrenheit, menos 32.
591
+
592
+ 08:24.600 --> 08:28.280
593
+ Entonces vamos a colocar por acá nuestra
594
+ temperatura en
595
+
596
+ 08:28.280 --> 08:32.280
597
+ Fahrenheit, menos
598
+ 32.
599
+
600
+ 08:32.280 --> 08:36.800
601
+ Y aquí ya tendríamos nuestra fórmula por
602
+ cada uno de los
603
+
604
+ 08:36.800 --> 08:40.360
605
+ elementos, y ya lo estamos agregando a una
606
+ variable,
607
+
608
+ 08:40.360 --> 08:43.880
609
+ que es esta de las temperaturas en Celsius.
610
+
611
+ 08:43.880 --> 08:47.560
612
+ Vamos a colocar un console.log, en donde
613
+ vamos a revisar,
614
+
615
+ 08:47.560 --> 08:48.240
616
+ ¿quién?
617
+
618
+ 08:48.240 --> 08:49.960
619
+ Las temperaturas en
620
+ Fahrenheit.
621
+
622
+ 08:49.960 --> 08:53.680
623
+ Entonces, temperatures, voy a colocar esto
624
+ así.
625
+
626
+ 08:53.680 --> 08:56.960
627
+ Ups, no, no todo, solo el nombre de la
628
+ variable.
629
+
630
+ 08:56.960 --> 09:02.160
631
+ Temperatures in Fahrenheit, vamos a
632
+ colocarlo así.
633
+
634
+ 09:02.160 --> 09:04.440
635
+ Y colocamos acá nuestra
636
+ variable,
637
+
638
+ 09:04.440 --> 09:08.120
639
+ para que no la arroje, seguido de un console.
640
+ log,
641
+
642
+ 09:08.120 --> 09:11.200
643
+ en donde también vamos a revisar las
644
+ temperaturas en grados
645
+
646
+ 09:11.200 --> 09:11.880
647
+ Celsius.
648
+
649
+ 09:11.880 --> 09:16.560
650
+ Entonces colocamos por acá, temperaturas
651
+ en Celsius,
652
+
653
+ 09:16.560 --> 09:20.400
654
+ dos puntos, y colocamos acá
655
+ esto.
656
+
657
+ 09:20.400 --> 09:23.960
658
+ Vamos a guardar, corremos nuevamente
659
+ nuestro código,
660
+
661
+ 09:23.960 --> 09:27.720
662
+ y aquí ya tenemos nuestras temperaturas en
663
+ Fahrenheit,
664
+
665
+ 09:27.720 --> 09:31.000
666
+ que aquí ya vemos el tema de que no nos
667
+ está mutando nuestra
668
+
669
+ 09:31.000 --> 09:32.040
670
+ array.
671
+
672
+ 09:32.040 --> 09:35.240
673
+ Y segundo, estamos viendo ya la conversión.
674
+
675
+ 09:35.240 --> 09:39.640
676
+ Corremos nuestro código, y aquí ya nos
677
+ salen las temperaturas
678
+
679
+ 09:39.640 --> 09:40.520
680
+ en
681
+ Fahrenheit.
682
+
683
+ 09:40.520 --> 09:45.080
684
+ Aquí algo interesante es que no nos
685
+ modificó el array original,
686
+
687
+ 09:45.080 --> 09:47.960
688
+ y adicional, tenemos nuestras temperaturas
689
+ en Celsius.
690
+
691
+ 09:47.960 --> 09:50.760
692
+ Entonces, aplicamos justamente esto que
693
+ vimos en nuestro
694
+
695
+ 09:50.760 --> 09:55.480
696
+ documento, en donde tenemos que en map va
697
+ a suceder algo,
698
+
699
+ 09:55.480 --> 10:00.640
700
+ una función cualquiera, y nos va a arrojar
701
+ en cada una de las
702
+
703
+ 10:00.640 --> 10:02.720
704
+ posiciones un valor
705
+ diferente.
706
+
707
+ 10:02.720 --> 10:06.000
708
+ Ahora, revisemos otro
709
+ ejercicio.
710
+
711
+ 10:06.000 --> 10:10.640
712
+ Tenemos por acá, suma de los elementos en
713
+ un array.
714
+
715
+ 10:10.640 --> 10:14.680
716
+ Crea un programa que tome los números de
717
+ un array,
718
+
719
+ 10:14.680 --> 10:18.920
720
+ y justamente calcula la suma de todos los
721
+ elementos de un
722
+
723
+ 10:18.920 --> 10:19.640
724
+ array.
725
+
726
+ 10:19.640 --> 10:22.120
727
+ Por favor, cuéntame en los comentarios que
728
+ utilizarías,
729
+
730
+ 10:22.120 --> 10:24.400
731
+ map o
732
+ foliage.
733
+
734
+ 10:24.400 --> 10:27.320
735
+ Yo, mientras tú vas escribiendo eso,
736
+
737
+ 10:27.320 --> 10:29.360
738
+ yo voy a ir colocando acá el título,
739
+
740
+ 10:29.360 --> 10:35.160
741
+ exercise, sum of elements in an array.
742
+
743
+ 10:35.160 --> 10:36.160
744
+ OK.
745
+
746
+ 10:36.160 --> 10:37.360
747
+ Vamos a irlo a
748
+ revisar.
749
+
750
+ 10:37.360 --> 10:41.080
751
+ Vamos a crear nuestro array, que en este
752
+ caso es const,
753
+
754
+ 10:41.080 --> 10:45.800
755
+ numbers va a ser igual aquí a numbers en
756
+ plural,
757
+
758
+ 10:45.800 --> 10:51.560
759
+ y aquí va a ser igual a, vamos a colocar 1, 2,
760
+ 3, 4, y 5.
761
+
762
+ 10:51.560 --> 10:55.440
763
+ Seguido, creo que por acá tenemos otro,
764
+ entonces,
765
+
766
+ 10:55.440 --> 10:57.920
767
+ new
768
+ numbers.
769
+
770
+ 10:57.920 --> 11:01.640
771
+ Ahora, lo que vamos a hacer es crearnos
772
+ una variable,
773
+
774
+ 11:01.640 --> 11:07.360
775
+ en este caso sería let suma, y este vamos
776
+ a inicializarlo
777
+
778
+ 11:07.360 --> 11:09.320
779
+ justamente en
780
+ 0.
781
+
782
+ 11:09.320 --> 11:09.920
783
+ ¿Por
784
+ qué?
785
+
786
+ 11:09.920 --> 11:14.120
787
+ Porque queremos almacenar acá el nuevo
788
+ valor que justamente
789
+
790
+ 11:14.120 --> 11:16.720
791
+ necesitamos, que es el de la suma de todos
792
+ los números del
793
+
794
+ 11:16.720 --> 11:17.760
795
+ array.
796
+
797
+ 11:17.760 --> 11:21.960
798
+ Para ello, lo que vamos a hacer es tomar
799
+ new numbers y vamos
800
+
801
+ 11:21.960 --> 11:27.640
802
+ a aplicar nuestro método, que en este caso
803
+ sería for each.
804
+
805
+ 11:27.640 --> 11:31.280
806
+ Este for each, lo que nos va a permitir es
807
+ tomar cada uno de
808
+
809
+ 11:31.280 --> 11:33.760
810
+ los elementos y empezarlos a
811
+ sumar.
812
+
813
+ 11:33.760 --> 11:37.880
814
+ Entonces, vamos a tomar number, que sería
815
+ por cada uno,
816
+
817
+ 11:37.880 --> 11:40.120
818
+ y retornemos
819
+ justamente.
820
+
821
+ 11:40.120 --> 11:41.640
822
+ Vamos a tomar la
823
+ suma.
824
+
825
+ 11:41.640 --> 11:46.480
826
+ Voy a crear acá unas llaves para colocarlo
827
+ en un salto de línea.
828
+
829
+ 11:46.480 --> 11:53.640
830
+ Coloco suma, y esa suma sería la suma
831
+ anterior más el valor de
832
+
833
+ 11:53.640 --> 11:55.720
834
+ el nuevo número que
835
+ tengamos.
836
+
837
+ 11:55.720 --> 12:00.520
838
+ Esto en JavaScript también se puede
839
+ escribir como más igual
840
+
841
+ 12:00.520 --> 12:01.840
842
+ number.
843
+
844
+ 12:01.840 --> 12:03.200
845
+ Y ya tendríamos
846
+ eso.
847
+
848
+ 12:03.200 --> 12:06.880
849
+ Y lo que vamos a hacer es console.log,
850
+ ¿de quién?
851
+
852
+ 12:06.880 --> 12:10.400
853
+ De new numbers, que serían los números que
854
+ tenemos en el array.
855
+
856
+ 12:10.400 --> 12:12.120
857
+ Voy a colocar por acá también un mensajito,
858
+
859
+ 12:12.120 --> 12:14.440
860
+ así como hicimos en el ejercicio pasado.
861
+
862
+ 12:14.440 --> 12:21.000
863
+ Voy a colocar array of numbers y voy a
864
+ colocar console.log,
865
+
866
+ 12:21.000 --> 12:21.960
867
+ ¿de
868
+ quién?
869
+
870
+ 12:21.960 --> 12:24.600
871
+ De la suma de todos los
872
+ números.
873
+
874
+ 12:24.600 --> 12:29.440
875
+ Entonces, voy a colocar sum of numbers.
876
+
877
+ 12:29.440 --> 12:33.360
878
+ Y aquí le coloco nuestra variable suma.
879
+
880
+ 12:33.360 --> 12:35.080
881
+ Vamos a
882
+ guardar.
883
+
884
+ 12:35.080 --> 12:38.880
885
+ Revisamos nuestro código y vemos nuestro
886
+ array y la suma de
887
+
888
+ 12:38.880 --> 12:39.560
889
+ todos
890
+ ellos.
891
+
892
+ 12:39.560 --> 12:44.840
893
+ Revisemos 5 más 4, 9 más este 1, 10,
894
+ y estos dos aquí.
895
+
896
+ 12:44.840 --> 12:48.160
897
+ Nos quedó genial el código, así que por
898
+ favor cuéntame en los
899
+
900
+ 12:48.160 --> 12:51.040
901
+ comentarios cómo te quedaron estos dos
902
+ ejercicios y si le
903
+
904
+ 12:51.040 --> 13:05.680
905
+ pertinaste, por supuesto, al uso de map y
906
+ for each.
907
+
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/04-clase-map-foreach_d7b1a93f-0f56-4fd3-a419-c28c09dc2a16.js ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Methods that iterate over an array.
2
+ // Methods that DO NOT modify the original array (Immutability).
3
+
4
+ // map()
5
+
6
+ const numbers = [1, 2, 3, 4, 5]
7
+ const squaredNumbers = numbers.map(num => num * num)
8
+
9
+ console.log(numbers)
10
+ console.log(squaredNumbers)
11
+
12
+ // forEach()
13
+
14
+ const colors = ['red', 'pink', 'blue']
15
+ const iteratedColors = colors.forEach(color => console.log(color))
16
+
17
+ console.log(colors)
18
+ console.log(iteratedColors)
19
+
20
+ // Exercise: Fahrenheit to Celsius conversion
21
+
22
+ const temperaturesInFahrenheit = [32, 68, 95, 104, 212]
23
+
24
+ const temperaturesInCelsius = temperaturesInFahrenheit.map(fahrenheit => (5/9) * (fahrenheit - 32))
25
+
26
+ console.log('Temperatures In Fahrenheit: ', temperaturesInFahrenheit)
27
+ console.log('Temperatures In Celsius: ', temperaturesInCelsius)
28
+
29
+ // Exercise: Sum of Elements in an Array
30
+
31
+ const newNumbers = [1, 2, 3, 4, 5]
32
+
33
+ let sum = 0
34
+
35
+ newNumbers.forEach(number => {
36
+ sum += number
37
+ })
38
+
39
+ console.log('Array of Numbers: ', newNumbers)
40
+ console.log('Sum of Numbers: ', sum)
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Métodos Filter y Reduce en JavaScript Uso y Ejemplos Prácticos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:293e4b713a401fa2895e8e60e4683c090862ffc6ad0ab04c5e973f569b56cac5
3
+ size 61041444
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Métodos Filter y Reduce en JavaScript Uso y Ejemplos Prácticos.vtt ADDED
@@ -0,0 +1,1198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:03.540
4
+ En esta clase vamos a estar hablando sobre
5
+ dos métodos de Arrays
6
+
7
+ 00:03.540 --> 00:06.080
8
+ que no modifican el Array
9
+ original.
10
+
11
+ 00:06.080 --> 00:08.740
12
+ Ellos son Filter y
13
+ Reduce.
14
+
15
+ 00:08.740 --> 00:11.040
16
+ Filter, en este
17
+ caso,
18
+
19
+ 00:11.040 --> 00:13.680
20
+ nos va a mostrar que tenemos un Array,
21
+
22
+ 00:13.680 --> 00:17.040
23
+ en este caso es 2, 4, 8, 10 y
24
+ 12,
25
+
26
+ 00:17.040 --> 00:21.180
27
+ y resulta que cada uno de ellos va a pasar
28
+ por una función,
29
+
30
+ 00:21.180 --> 00:24.540
31
+ pero esta función debe ser a su vez una
32
+ condición,
33
+
34
+ 00:24.540 --> 00:28.340
35
+ es decir, si este número, en este caso,
36
+
37
+ 00:28.340 --> 00:30.340
38
+ pasa esa
39
+ condición,
40
+
41
+ 00:30.340 --> 00:33.340
42
+ se crea un nuevo Array con esos
43
+ elementos
44
+
45
+ 00:33.340 --> 00:35.340
46
+ que pasaron la
47
+ condición.
48
+
49
+ 00:35.340 --> 00:39.140
50
+ Por ejemplo, aquí estamos viendo que los
51
+ números mayores a 5,
52
+
53
+ 00:39.140 --> 00:42.940
54
+ por ejemplo, están pasando aquí a este
55
+ nuevo Array
56
+
57
+ 00:42.940 --> 00:45.340
58
+ y se está creando el Array con los
59
+ números
60
+
61
+ 00:45.340 --> 00:47.540
62
+ que sean mayores a
63
+ 5.
64
+
65
+ 00:47.540 --> 00:49.540
66
+ En este caso vamos a revisarlo en el
67
+ código
68
+
69
+ 00:49.540 --> 00:52.240
70
+ para ver precisamente cómo es que funciona.
71
+
72
+ 00:52.240 --> 00:54.940
73
+ Entonces vamos a colocar por acá un
74
+ comentario
75
+
76
+ 00:54.940 --> 00:56.340
77
+ que se llame
78
+ Filter,
79
+
80
+ 00:56.340 --> 00:59.840
81
+ y vamos a crear una variable que se llame
82
+ Numbers,
83
+
84
+ 00:59.840 --> 01:03.140
85
+ y dentro de Numbers vamos a crear un Array
86
+ de números,
87
+
88
+ 01:03.140 --> 01:07.440
89
+ puede ser, por ejemplo, 2, 3, 4,
90
+ 5,
91
+
92
+ 01:07.440 --> 01:11.140
93
+ llévamolo hasta 10, 8, 9 y
94
+ 10.
95
+
96
+ 01:11.140 --> 01:13.240
97
+ Teniendo en cuenta este
98
+ Array,
99
+
100
+ 01:13.240 --> 01:15.940
101
+ lo que vamos a hacer es crear otra
102
+ variable
103
+
104
+ 01:15.940 --> 01:20.240
105
+ en donde vamos a crear solamente los
106
+ números que son pares.
107
+
108
+ 01:20.240 --> 01:21.240
109
+ ¿Cómo lo vamos a
110
+ crear?
111
+
112
+ 01:21.240 --> 01:23.840
113
+ Vamos a decir
114
+ evenNumbers,
115
+
116
+ 01:23.840 --> 01:28.240
117
+ y va a ser el Array que teníamos inicialmente,
118
+
119
+ 01:28.240 --> 01:30.140
120
+ punto
121
+ Filter,
122
+
123
+ 01:30.140 --> 01:33.940
124
+ y dentro de Filter es que vamos a crear
125
+ esa función
126
+
127
+ 01:33.940 --> 01:37.440
128
+ que nos va a retornar los elementos que sí
129
+ queremos,
130
+
131
+ 01:37.440 --> 01:39.840
132
+ que en este caso son los números pares.
133
+
134
+ 01:39.840 --> 01:40.840
135
+ ¿Cómo lo
136
+ hacemos?
137
+
138
+ 01:40.840 --> 01:42.940
139
+ Creamos aquí un
140
+ parámetro
141
+
142
+ 01:42.940 --> 01:44.840
143
+ que va a ser cada uno de los elementos,
144
+
145
+ 01:44.840 --> 01:46.740
146
+ por eso lo ponemos en
147
+ singular,
148
+
149
+ 01:46.740 --> 01:49.040
150
+ seguido vamos a colocar un ArrowFunction,
151
+
152
+ 01:49.040 --> 01:52.440
153
+ y aquí en este lado vamos a colocar
154
+ justamente
155
+
156
+ 01:52.440 --> 01:54.040
157
+ lo que nos va a
158
+ retornar,
159
+
160
+ 01:54.040 --> 01:56.640
161
+ o la condición que queremos
162
+ obtener
163
+
164
+ 01:56.640 --> 01:59.040
165
+ justamente para este
166
+ filtrado.
167
+
168
+ 01:59.040 --> 01:59.840
169
+ ¿Cómo
170
+ sería?
171
+
172
+ 01:59.840 --> 02:01.740
173
+ Vamos a colocar
174
+ Number,
175
+
176
+ 02:01.740 --> 02:05.340
177
+ aquí vamos a colocar módulo
178
+ 2,
179
+
180
+ 02:05.340 --> 02:08.740
181
+ que en este caso nos va a arrojar un número.
182
+
183
+ 02:08.740 --> 02:12.740
184
+ Si el módulo de este número es igual a cero,
185
+
186
+ 02:12.740 --> 02:15.340
187
+ ya sabemos que es un número
188
+ par.
189
+
190
+ 02:15.340 --> 02:18.140
191
+ Para esto vamos a revisar qué es un módulo.
192
+
193
+ 02:18.140 --> 02:21.440
194
+ Básicamente, si tenemos una división,
195
+
196
+ 02:21.440 --> 02:24.540
197
+ en este caso tomemos el número 4, por ejemplo,
198
+
199
+ 02:24.540 --> 02:27.240
200
+ y estamos haciendo la división con 2,
201
+
202
+ 02:27.240 --> 02:29.440
203
+ supongamos que esto es lo que normalmente
204
+ hacemos
205
+
206
+ 02:29.440 --> 02:31.940
207
+ cuando creamos una
208
+ división,
209
+
210
+ 02:31.940 --> 02:33.240
211
+ voy a colocarlo
212
+ así,
213
+
214
+ 02:33.240 --> 02:35.040
215
+ tenemos 4 dividido
216
+ 2,
217
+
218
+ 02:35.040 --> 02:38.140
219
+ y aquí lo que hacemos es crear un valor,
220
+
221
+ 02:38.140 --> 02:39.940
222
+ aquí decimos cuántas veces
223
+ está,
224
+
225
+ 02:39.940 --> 02:41.540
226
+ entonces sería
227
+ 2,
228
+
229
+ 02:41.540 --> 02:43.440
230
+ 2 por 2,
231
+ 4,
232
+
233
+ 02:43.440 --> 02:44.940
234
+ y aquí sería
235
+ cero.
236
+
237
+ 02:44.940 --> 02:49.040
238
+ Si ese módulo, este valor del módulo es cero,
239
+
240
+ 02:49.040 --> 02:52.140
241
+ pues precisamente ya sabemos que es un
242
+ número par.
243
+
244
+ 02:52.140 --> 02:54.040
245
+ De lo contrario, si el número no es cero,
246
+
247
+ 02:54.040 --> 02:56.940
248
+ pues ya sabemos que no es un número par.
249
+
250
+ 02:56.940 --> 03:00.040
251
+ Ahora vamos a revisar un console.log,
252
+
253
+ 03:00.040 --> 03:03.940
254
+ donde revisemos tanto los números
255
+ iniciales que creamos,
256
+
257
+ 03:03.940 --> 03:05.040
258
+ ¿como
259
+ quién?
260
+
261
+ 03:05.040 --> 03:07.940
262
+ Como los números pares que acabamos de
263
+ filtrar.
264
+
265
+ 03:07.940 --> 03:10.540
266
+ Vamos a correr nuestro
267
+ código,
268
+
269
+ 03:10.540 --> 03:12.440
270
+ le decimos
271
+ node,
272
+
273
+ 03:12.440 --> 03:13.640
274
+ clase,
275
+
276
+ 03:13.640 --> 03:15.240
277
+ filter,
278
+
279
+ 03:15.240 --> 03:18.140
280
+ y aquí vemos que tenemos nuestros
281
+ números
282
+
283
+ 03:18.140 --> 03:19.540
284
+ de 1 a
285
+ 10,
286
+
287
+ 03:19.540 --> 03:21.540
288
+ y seguido tenemos nuestro
289
+ array
290
+
291
+ 03:21.540 --> 03:24.740
292
+ solamente con números que son pares.
293
+
294
+ 03:24.740 --> 03:27.240
295
+ Ahora vamos con el otro
296
+ método,
297
+
298
+ 03:27.240 --> 03:29.140
299
+ que es
300
+ reduce.
301
+
302
+ 03:29.140 --> 03:31.540
303
+ ¿Qué nos hace este
304
+ método?
305
+
306
+ 03:31.540 --> 03:33.140
307
+ Como su nombre lo
308
+ indica,
309
+
310
+ 03:33.140 --> 03:36.340
311
+ es básicamente reducir un
312
+ array
313
+
314
+ 03:36.340 --> 03:38.040
315
+ a un solo
316
+ valor.
317
+
318
+ 03:38.040 --> 03:39.240
319
+ En este
320
+ caso,
321
+
322
+ 03:39.240 --> 03:42.140
323
+ tenemos el número 1, 2, 3 y
324
+ 4,
325
+
326
+ 03:42.140 --> 03:43.940
327
+ y lo que se está haciendo
328
+ es
329
+
330
+ 03:43.940 --> 03:45.940
331
+ sumando todos los
332
+ valores,
333
+
334
+ 03:45.940 --> 03:48.140
335
+ obteniendo justamente
336
+ 1.
337
+
338
+ 03:48.140 --> 03:49.740
339
+ Esa sería la
340
+ reducción.
341
+
342
+ 03:49.740 --> 03:51.840
343
+ En este caso, 4 más 3 es
344
+ 7,
345
+
346
+ 03:51.840 --> 03:53.040
347
+ 7 más 2,
348
+ 9,
349
+
350
+ 03:53.040 --> 03:54.640
351
+ y más 1,
352
+ 10.
353
+
354
+ 03:54.640 --> 03:56.940
355
+ Vamos a ver cómo sería esto en el código.
356
+
357
+ 03:56.940 --> 03:58.840
358
+ Coloquemos acá
359
+ reduce,
360
+
361
+ 03:58.840 --> 04:02.240
362
+ y vamos a empezar a crear nuestras variables.
363
+
364
+ 04:02.240 --> 04:04.040
365
+ Voy a colocar
366
+ acá
367
+
368
+ 04:04.040 --> 04:06.040
369
+ una constante que se
370
+ llame
371
+
372
+ 04:06.040 --> 04:08.040
373
+ numbersReduce,
374
+
375
+ 04:08.040 --> 04:10.040
376
+ para que hagamos una
377
+ diferenciación
378
+
379
+ 04:10.040 --> 04:13.540
380
+ con esta otra variable que creamos aquí
381
+ arriba,
382
+
383
+ 04:13.540 --> 04:15.840
384
+ y vamos a empezar a crear nuestro
385
+ array
386
+
387
+ 04:15.840 --> 04:17.840
388
+ en este caso puede ser, por ejemplo,
389
+
390
+ 04:17.840 --> 04:19.640
391
+ de números del 1 al
392
+ 5.
393
+
394
+ 04:19.640 --> 04:22.940
395
+ Entonces, 1, 2, 3, 4 y
396
+ 5.
397
+
398
+ 04:22.940 --> 04:24.440
399
+ ¿Qué vamos a hacer
400
+ ahora?
401
+
402
+ 04:24.440 --> 04:26.040
403
+ Vamos a
404
+ sumarlos.
405
+
406
+ 04:26.040 --> 04:27.940
407
+ Entonces, vamos a crear una
408
+ variable
409
+
410
+ 04:27.940 --> 04:29.440
411
+ que se llame
412
+ suma,
413
+
414
+ 04:29.440 --> 04:30.640
415
+ y dentro de
416
+ suma,
417
+
418
+ 04:30.640 --> 04:32.240
419
+ vamos a colocar lo
420
+ siguiente,
421
+
422
+ 04:32.240 --> 04:33.840
423
+ numbersReduce,
424
+
425
+ 04:33.840 --> 04:34.940
426
+ y en este
427
+ caso,
428
+
429
+ 04:34.940 --> 04:36.540
430
+ vamos a colocar, por
431
+ supuesto,
432
+
433
+ 04:36.540 --> 04:37.740
434
+ nuestro
435
+ método.
436
+
437
+ 04:37.740 --> 04:40.340
438
+ Este método no funciona así
439
+ solito.
440
+
441
+ 04:40.340 --> 04:43.640
442
+ Nos toca agregarle ciertos
443
+ valores
444
+
445
+ 04:43.640 --> 04:45.740
446
+ a nuestras funciones que va por dentro,
447
+
448
+ 04:45.740 --> 04:47.640
449
+ para que precisamente
450
+ pueda
451
+
452
+ 04:47.640 --> 04:49.340
453
+ funcionar el valor de la
454
+ soma.
455
+
456
+ 04:49.340 --> 04:51.140
457
+ No va a funcionar así
458
+ solito.
459
+
460
+ 04:51.140 --> 04:52.640
461
+ ¿Qué le vamos a
462
+ poner?
463
+
464
+ 04:52.640 --> 04:54.240
465
+ Él tiene
466
+ normalmente
467
+
468
+ 04:54.240 --> 04:56.440
469
+ una función que recibe dos parámetros.
470
+
471
+ 04:56.440 --> 04:59.040
472
+ El primer parámetro es un acumulador,
473
+
474
+ 04:59.040 --> 05:00.340
475
+ entonces voy a
476
+ colocar
477
+
478
+ 05:00.340 --> 05:03.040
479
+ accumulator,
480
+
481
+ 05:03.040 --> 05:04.140
482
+ y
483
+ seguido,
484
+
485
+ 05:04.140 --> 05:06.440
486
+ tenemos el
487
+ currentValue.
488
+
489
+ 05:06.440 --> 05:09.240
490
+ Entonces,
491
+ currentValue.
492
+
493
+ 05:09.240 --> 05:10.240
494
+ Entonces,
495
+ él,
496
+
497
+ 05:10.240 --> 05:12.240
498
+ justamente como su nombre lo indica,
499
+
500
+ 05:12.240 --> 05:14.440
501
+ va a ser como si tuviéramos una variable,
502
+
503
+ 05:14.440 --> 05:16.640
504
+ supongamos que tuviéramos
505
+ led,
506
+
507
+ 05:16.640 --> 05:18.940
508
+ acumulador,
509
+
510
+ 05:18.940 --> 05:21.540
511
+ y este estuviera inicializado en
512
+ 0.
513
+
514
+ 05:21.540 --> 05:22.740
515
+ Entonces, es como si
516
+ tuviéramos
517
+
518
+ 05:22.740 --> 05:25.040
519
+ una variable
520
+ externa,
521
+
522
+ 05:25.040 --> 05:26.540
523
+ en donde estamos
524
+ justamente
525
+
526
+ 05:26.540 --> 05:28.340
527
+ guardando o
528
+ almacenando
529
+
530
+ 05:28.340 --> 05:29.640
531
+ el valor de la
532
+ suma
533
+
534
+ 05:29.640 --> 05:31.940
535
+ de cada uno de los
536
+ datos.
537
+
538
+ 05:31.940 --> 05:33.640
539
+ Y el currentValue, por
540
+ supuesto,
541
+
542
+ 05:33.640 --> 05:36.240
543
+ sería cada uno de los valores del array.
544
+
545
+ 05:36.240 --> 05:38.440
546
+ Entonces, así
547
+ funciona.
548
+
549
+ 05:38.440 --> 05:40.340
550
+ Y lo único que nos haría
551
+ falta
552
+
553
+ 05:40.340 --> 05:42.640
554
+ es retornar
555
+ justamente
556
+
557
+ 05:42.640 --> 05:45.540
558
+ el acumulador
559
+ más
560
+
561
+ 05:45.540 --> 05:47.440
562
+ el
563
+ currentValue.
564
+
565
+ 05:47.440 --> 05:50.340
566
+ Y adicional, debemos colocarle otro valor,
567
+
568
+ 05:50.340 --> 05:52.840
569
+ que en este caso es el initialValue,
570
+
571
+ 05:52.840 --> 05:54.040
572
+ para nosotros va a ser
573
+ 0,
574
+
575
+ 05:54.040 --> 05:57.040
576
+ no necesitamos que empiece en otro tipo de
577
+ valor,
578
+
579
+ 05:57.040 --> 05:59.740
580
+ sino que le vamos a poner netamente 0.
581
+
582
+ 05:59.740 --> 06:01.040
583
+ Y ahora, lo que
584
+ hacemos
585
+
586
+ 06:01.040 --> 06:03.340
587
+ es colocar un
588
+ console.log,
589
+
590
+ 06:03.340 --> 06:05.340
591
+ tanto de
592
+ numbersReduce,
593
+
594
+ 06:05.340 --> 06:06.340
595
+ como de
596
+ quién?
597
+
598
+ 06:06.340 --> 06:07.140
599
+ De la
600
+ suma.
601
+
602
+ 06:07.140 --> 06:08.440
603
+ Entonces,
604
+ console...
605
+
606
+ 06:08.440 --> 06:10.240
607
+ Ups, se fue otra
608
+ cosa.
609
+
610
+ 06:10.240 --> 06:12.340
611
+ Console.log
612
+
613
+ 06:12.340 --> 06:13.140
614
+ ¿de
615
+ quién?
616
+
617
+ 06:13.140 --> 06:14.140
618
+ De
619
+ suma.
620
+
621
+ 06:14.140 --> 06:15.640
622
+ Entonces, vamos a
623
+ guardar,
624
+
625
+ 06:15.640 --> 06:18.340
626
+ corremos nuestro
627
+ código,
628
+
629
+ 06:18.340 --> 06:20.640
630
+ y aquí ya revisamos que
631
+ tenemos
632
+
633
+ 06:20.640 --> 06:23.140
634
+ uno, nuestro
635
+ array,
636
+
637
+ 06:23.140 --> 06:24.640
638
+ que en este caso
639
+ sería
640
+
641
+ 06:24.640 --> 06:27.240
642
+ 1, 2, 3, 4, 5, es este de
643
+ aquí,
644
+
645
+ 06:27.240 --> 06:29.340
646
+ y suma, que es
647
+ justamente
648
+
649
+ 06:29.340 --> 06:30.640
650
+ un solo
651
+ valor,
652
+
653
+ 06:30.640 --> 06:32.340
654
+ el valor
655
+ reducido,
656
+
657
+ 06:32.340 --> 06:35.640
658
+ que en este caso sería
659
+ 15.
660
+
661
+ 06:35.640 --> 06:36.840
662
+ Por otro
663
+ lado,
664
+
665
+ 06:36.840 --> 06:38.540
666
+ listo, nos sirve
667
+ para
668
+
669
+ 06:38.540 --> 06:40.440
670
+ sumar elementos de un
671
+ array,
672
+
673
+ 06:40.440 --> 06:42.040
674
+ eso está muy
675
+ bien,
676
+
677
+ 06:42.040 --> 06:45.140
678
+ pero también nos sirve para otras cosas
679
+ reduce,
680
+
681
+ 06:45.140 --> 06:46.240
682
+ como por
683
+ ejemplo,
684
+
685
+ 06:46.240 --> 06:48.540
686
+ encontrar qué tanto se
687
+ repite
688
+
689
+ 06:48.540 --> 06:50.440
690
+ una palabra en un
691
+ array.
692
+
693
+ 06:50.440 --> 06:52.440
694
+ Entonces, acá por ejemplo, en reduce,
695
+
696
+ 06:52.440 --> 06:54.240
697
+ lo que voy a colocarle
698
+ es
699
+
700
+ 06:54.240 --> 06:56.840
701
+ caso, colocarlo en
702
+ minúscula,
703
+
704
+ 06:56.840 --> 06:58.140
705
+ caso1,
706
+
707
+ 06:58.140 --> 07:00.340
708
+ y voy a crear por acá otro que
709
+ diga
710
+
711
+ 07:00.340 --> 07:02.240
712
+ caso2.
713
+
714
+ 07:02.240 --> 07:04.340
715
+ Aquí voy a hacer
716
+ scroll,
717
+
718
+ 07:04.340 --> 07:05.540
719
+ y lo que vamos a
720
+ hacer
721
+
722
+ 07:05.540 --> 07:06.840
723
+ es revisar lo
724
+ siguiente.
725
+
726
+ 07:06.840 --> 07:09.040
727
+ Vamos a crear ahora un
728
+ array,
729
+
730
+ 07:09.040 --> 07:10.740
731
+ pero este array ya no va a ser de números,
732
+
733
+ 07:10.740 --> 07:12.640
734
+ sino que va a ser de
735
+ palabras.
736
+
737
+ 07:12.640 --> 07:15.440
738
+ Entonces voy a colocarle
739
+ words,
740
+
741
+ 07:15.440 --> 07:17.140
742
+ y dentro de este
743
+ array,
744
+
745
+ 07:17.140 --> 07:18.640
746
+ lo que voy a hacer es
747
+ colocar
748
+
749
+ 07:18.640 --> 07:19.640
750
+ diferentes
751
+ palabras.
752
+
753
+ 07:19.640 --> 07:21.740
754
+ Entonces, por
755
+ ejemplo,
756
+
757
+ 07:21.740 --> 07:23.040
758
+ apple,
759
+
760
+ 07:23.040 --> 07:25.140
761
+ banana,
762
+
763
+ 07:25.140 --> 07:26.840
764
+ puede ser por
765
+ ejemplo,
766
+
767
+ 07:26.840 --> 07:28.440
768
+ hello,
769
+
770
+ 07:28.440 --> 07:30.340
771
+ u otra cosa puede
772
+ ser,
773
+
774
+ 07:30.340 --> 07:31.240
775
+ bye,
776
+
777
+ 07:31.240 --> 07:33.540
778
+ son palabras
779
+ aleatorias.
780
+
781
+ 07:33.540 --> 07:34.940
782
+ Después de
783
+ esto,
784
+
785
+ 07:34.940 --> 07:37.140
786
+ lo que tengo que garantizar en esta
787
+ creación
788
+
789
+ 07:37.140 --> 07:39.840
790
+ es que por supuesto no se repita alguna de
791
+ ellas.
792
+
793
+ 07:39.840 --> 07:41.940
794
+ Entonces, por ejemplo, voy a
795
+ decir
796
+
797
+ 07:41.940 --> 07:44.640
798
+ banana, la voy a
799
+ duplicar,
800
+
801
+ 07:44.640 --> 07:46.740
802
+ y voy a colocar bye
803
+ también
804
+
805
+ 07:46.740 --> 07:49.540
806
+ otras dos veces, supongamos que está así.
807
+
808
+ 07:49.540 --> 07:50.340
809
+ Listo.
810
+
811
+ 07:50.340 --> 07:51.940
812
+ ¿Qué vamos a hacer
813
+ ahora?
814
+
815
+ 07:51.940 --> 07:54.240
816
+ Vamos a crear otra
817
+ variable
818
+
819
+ 07:54.240 --> 07:56.240
820
+ en donde precisamente vamos a
821
+ revisar
822
+
823
+ 07:56.240 --> 07:58.140
824
+ cómo funciona
825
+ reduce,
826
+
827
+ 07:58.140 --> 07:59.940
828
+ ¿para qué? Para que podamos
829
+ encontrar
830
+
831
+ 07:59.940 --> 08:02.840
832
+ cuántas veces se
833
+ repite
834
+
835
+ 08:02.840 --> 08:04.440
836
+ alguna de estas
837
+ palabras.
838
+
839
+ 08:04.440 --> 08:05.440
840
+ ¿Cómo lo
841
+ hacemos?
842
+
843
+ 08:05.440 --> 08:07.540
844
+ Vamos a crear una variable por
845
+ acá
846
+
847
+ 08:07.540 --> 08:10.140
848
+ que se llame, voy a crear un espacio,
849
+
850
+ 08:10.140 --> 08:13.640
851
+ const word
852
+ frequency.
853
+
854
+ 08:13.640 --> 08:15.040
855
+ Frequency.
856
+
857
+ 08:15.040 --> 08:16.540
858
+ Vamos a hacer un
859
+ igual,
860
+
861
+ 08:16.540 --> 08:19.140
862
+ y lo que hacemos es tomar nuestro array,
863
+
864
+ 08:19.140 --> 08:20.840
865
+ decirle
866
+ reduce,
867
+
868
+ 08:20.840 --> 08:22.840
869
+ y aquí es donde
870
+ empieza
871
+
872
+ 08:22.840 --> 08:25.240
873
+ todo el tema de la función que va por dentro.
874
+
875
+ 08:25.240 --> 08:26.340
876
+ ¿Cómo lo vamos a
877
+ escribir?
878
+
879
+ 08:26.340 --> 08:28.240
880
+ Entonces colocamos
881
+ nuevamente
882
+
883
+ 08:28.240 --> 08:31.240
884
+ estos dos parámetros, que es tanto el
885
+ acumulador
886
+
887
+ 08:31.240 --> 08:33.740
888
+ como el valor
889
+ actual,
890
+
891
+ 08:33.740 --> 08:36.840
892
+ y seguido de esto vamos a colocar un arrow
893
+ function
894
+
895
+ 08:36.840 --> 08:38.840
896
+ y unas llaves para empezar a
897
+ escribir
898
+
899
+ 08:38.840 --> 08:42.040
900
+ el cuerpo de esta función
901
+ aquí.
902
+
903
+ 08:42.040 --> 08:44.040
904
+ Ahora lo que hacemos es
905
+ decir,
906
+
907
+ 08:44.040 --> 08:47.140
908
+ ok, si el current
909
+ value,
910
+
911
+ 08:47.140 --> 08:50.140
912
+ en este caso, si el current
913
+ value
914
+
915
+ 08:50.140 --> 08:51.740
916
+ se
917
+ repite,
918
+
919
+ 08:51.740 --> 08:54.140
920
+ lo que vamos a hacer es
921
+ acumularlo
922
+
923
+ 08:54.140 --> 08:55.140
924
+ o
925
+ guardarlo.
926
+
927
+ 08:55.140 --> 08:56.940
928
+ Entonces eso es lo que vamos a hacer.
929
+
930
+ 08:56.940 --> 08:59.040
931
+ Mira que la primera
932
+ palabra
933
+
934
+ 08:59.040 --> 09:01.440
935
+ o lo que empezamos a hacer fue
936
+ cuestionarnos
937
+
938
+ 09:01.440 --> 09:03.740
939
+ si esta palabra
940
+ existe.
941
+
942
+ 09:03.740 --> 09:05.740
943
+ Y ahí es donde llega la
944
+ magia,
945
+
946
+ 09:05.740 --> 09:07.940
947
+ por supuesto, de los
948
+ condicionales.
949
+
950
+ 09:07.940 --> 09:09.940
951
+ Entonces, ¿qué vamos a hacer
952
+ acá?
953
+
954
+ 09:09.940 --> 09:13.440
955
+ Sí, vamos a colocar
956
+ accumulator.
957
+
958
+ 09:13.440 --> 09:15.040
959
+ ¿En qué
960
+ posición?
961
+
962
+ 09:15.040 --> 09:17.540
963
+ En la posición del current
964
+ value.
965
+
966
+ 09:17.540 --> 09:19.740
967
+ En este caso,
968
+ ¿existe?
969
+
970
+ 09:19.740 --> 09:21.340
971
+ Que es como que, ah,
972
+ bueno,
973
+
974
+ 09:21.340 --> 09:23.340
975
+ si viene por acá Apple, ¿ya
976
+ existe?
977
+
978
+ 09:23.340 --> 09:25.740
979
+ En este caso no, sería como la primera
980
+ vez
981
+
982
+ 09:25.740 --> 09:26.740
983
+ que llega
984
+ él,
985
+
986
+ 09:26.740 --> 09:30.240
987
+ entonces entraría a la otra parte del
988
+ condicional.
989
+
990
+ 09:30.240 --> 09:32.240
991
+ Si no existe, que es
992
+ justamente
993
+
994
+ 09:32.240 --> 09:34.240
995
+ cuando llegamos, por ejemplo, a Apple,
996
+
997
+ 09:34.240 --> 09:35.940
998
+ lo que hacemos es
999
+ decirle
1000
+
1001
+ 09:35.940 --> 09:37.740
1002
+ que este
1003
+ acumulador
1004
+
1005
+ 09:37.740 --> 09:39.740
1006
+ en esta
1007
+ posición
1008
+
1009
+ 09:39.740 --> 09:41.740
1010
+ va a ser igual a quién? A
1011
+ 1.
1012
+
1013
+ 09:41.740 --> 09:44.740
1014
+ Es decir que inmediatamente empecemos
1015
+ a
1016
+
1017
+ 09:44.740 --> 09:47.240
1018
+ leer las palabras del
1019
+ array,
1020
+
1021
+ 09:47.240 --> 09:50.540
1022
+ él va a empezar a decir si existe o no existe,
1023
+
1024
+ 09:50.540 --> 09:53.540
1025
+ y si existe, va a ser algo, ya vamos a ver
1026
+ qué,
1027
+
1028
+ 09:53.540 --> 09:57.040
1029
+ y si no, va a empezar a guardar un valor
1030
+ inicial,
1031
+
1032
+ 09:57.040 --> 09:59.740
1033
+ que en este caso el valor inicial sería 1.
1034
+
1035
+ 09:59.740 --> 10:02.740
1036
+ Entonces, ¿Apple existe?
1037
+ No.
1038
+
1039
+ 10:02.740 --> 10:05.240
1040
+ Como no existe, entonces vamos a
1041
+ guardar
1042
+
1043
+ 10:05.240 --> 10:07.740
1044
+ su valor inicial, que sería
1045
+ 1.
1046
+
1047
+ 10:07.740 --> 10:09.740
1048
+ En caso de que sí
1049
+ exista,
1050
+
1051
+ 10:09.740 --> 10:11.740
1052
+ ejemplo, vamos a
1053
+ banana,
1054
+
1055
+ 10:11.740 --> 10:13.740
1056
+ banana entraría primero de que no existe,
1057
+
1058
+ 10:13.740 --> 10:16.240
1059
+ entonces le guardamos un valor
1060
+ 1,
1061
+
1062
+ 10:16.240 --> 10:18.240
1063
+ pero después vamos
1064
+ iterando,
1065
+
1066
+ 10:18.240 --> 10:20.240
1067
+ y después con el tiempo nos
1068
+ encontramos
1069
+
1070
+ 10:20.240 --> 10:21.740
1071
+ otra vez con
1072
+ banana,
1073
+
1074
+ 10:21.740 --> 10:23.740
1075
+ y preguntamos,
1076
+ ¿existe?
1077
+
1078
+ 10:23.740 --> 10:25.740
1079
+ Y aquí él va a decir, ah, sí, que él ya
1080
+ existe
1081
+
1082
+ 10:25.740 --> 10:27.740
1083
+ porque ya me guardaron un valor por allá,
1084
+
1085
+ 10:27.740 --> 10:28.740
1086
+ que es
1087
+ 1.
1088
+
1089
+ 10:28.740 --> 10:30.740
1090
+ Si existe, en este
1091
+ caso,
1092
+
1093
+ 10:30.740 --> 10:33.240
1094
+ lo que vamos a hacer es sumarle un 1,
1095
+
1096
+ 10:33.240 --> 10:35.740
1097
+ o un valor, entonces en este caso
1098
+ sería
1099
+
1100
+ 10:35.740 --> 10:38.740
1101
+ volver a tomar el valor que ya tenemos,
1102
+
1103
+ 10:38.740 --> 10:41.240
1104
+ y creo que se me fueron
1105
+ más,
1106
+
1107
+ 10:41.240 --> 10:43.240
1108
+ más cositas ahí,
1109
+ sería,
1110
+
1111
+ 10:43.240 --> 10:45.240
1112
+ si ya existe, ¿qué vamos a
1113
+ hacer?
1114
+
1115
+ 10:45.240 --> 10:48.240
1116
+ Vamos a sumarle un valor
1117
+ más.
1118
+
1119
+ 10:48.240 --> 10:50.740
1120
+ Entonces aquí le estamos diciendo, ah,
1121
+
1122
+ 10:50.740 --> 10:53.740
1123
+ está el valor, agrégale otro valor, y fin.
1124
+
1125
+ 10:53.740 --> 10:57.240
1126
+ Entonces aquí se va a empezar a acumular
1127
+ precisamente.
1128
+
1129
+ 10:57.240 --> 10:59.240
1130
+ Seguido de esto, lo que vamos a
1131
+ hacer
1132
+
1133
+ 10:59.240 --> 11:01.240
1134
+ es retornar,
1135
+ ¿quién?
1136
+
1137
+ 11:01.240 --> 11:02.740
1138
+ El
1139
+ acumulador.
1140
+
1141
+ 11:02.740 --> 11:05.240
1142
+ Entonces voy a subir esto un poquito,
1143
+
1144
+ 11:05.240 --> 11:07.740
1145
+ y lo que vamos a hacer acá es
1146
+ decirle
1147
+
1148
+ 11:07.740 --> 11:09.740
1149
+ que el valor inicial va a
1150
+ ser
1151
+
1152
+ 11:09.740 --> 11:11.740
1153
+ un objeto vacío en este
1154
+ caso.
1155
+
1156
+ 11:11.740 --> 11:13.740
1157
+ Y ahora lo que hacemos es
1158
+ colocar
1159
+
1160
+ 11:13.740 --> 11:15.740
1161
+ un console.log, ¿de
1162
+ quién?
1163
+
1164
+ 11:15.740 --> 11:17.740
1165
+ De la frecuencia de la
1166
+ palabra.
1167
+
1168
+ 11:17.740 --> 11:20.740
1169
+ Vamos a guardar, corremos nuestro código,
1170
+
1171
+ 11:20.740 --> 11:22.740
1172
+ y aquí ya vemos que
1173
+ tenemos
1174
+
1175
+ 11:22.740 --> 11:24.740
1176
+ apple siendo
1177
+ 1,
1178
+
1179
+ 11:24.740 --> 11:26.740
1180
+ banana siendo
1181
+ 2,
1182
+
1183
+ 11:26.740 --> 11:28.740
1184
+ hello, 1, y bye,
1185
+ 3.
1186
+
1187
+ 11:28.740 --> 11:30.740
1188
+ Entonces él ya nos hizo el
1189
+ conteo
1190
+
1191
+ 11:30.740 --> 11:32.740
1192
+ para saber cuál es la
1193
+ frecuencia
1194
+
1195
+ 11:32.740 --> 11:58.740
1196
+ de cada una de estas
1197
+ palabras.
1198
+
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/05-clase-filter-reduce_e813ab75-e07c-4b5d-aad3-8bfc93813d7a.js ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Methods that iterate over an array.
2
+ // Methods that DO NOT modify the original array (Immutability).
3
+
4
+ // filter()
5
+
6
+ const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
7
+ const evenNumbers = numbers.filter(number => number % 2 === 0)
8
+
9
+ console.log(numbers)
10
+ console.log(evenNumbers)
11
+
12
+ // reduce() · case 1
13
+
14
+ const numbersReduce = [1, 2, 3, 4, 5]
15
+ const sum = numbersReduce.reduce((accumulator, currentValue) => accumulator + currentValue, 0)
16
+
17
+ console.log(numbersReduce)
18
+ console.log(sum)
19
+
20
+ // reduce() · case 2
21
+
22
+ const words = ['apple', 'banana', 'hello', 'bye', 'banana', 'bye', 'bye']
23
+
24
+ const wordFrecuency = words.reduce((accumulator, currentValue) => {
25
+ if (accumulator[currentValue]) {
26
+ accumulator[currentValue]++
27
+ } else {
28
+ accumulator[currentValue] = 1
29
+ }
30
+ return accumulator
31
+ }, {})
32
+
33
+ console.log(wordFrecuency)
34
+
35
+ // Exercise: Passing Grade Average
36
+
37
+ const grades = [85, 92, 60, 78, 95, 66, 88, 50, 94]
38
+
39
+ const passingGrades = grades.filter(grade => grade >= 70)
40
+
41
+ const averagePassingGrade = passingGrades.reduce((sum, grade) => sum + grade, 0) / passingGrades.length
42
+
43
+ console.log('Original Grades: ', grades)
44
+ console.log('Passing Grades: ', passingGrades)
45
+ console.log('Average Passing Grade: ', averagePassingGrade)
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Métodos find y findIndex en JavaScript Uso y ejemplos prácticos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2940840265012b55a25215a3f6cb63e52f76e7d08608bfe87c3080024e2b5049
3
+ size 19643282
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Métodos find y findIndex en JavaScript Uso y ejemplos prácticos.vtt ADDED
@@ -0,0 +1,311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:03.400
4
+ En esta clase vamos a estar hablando de
5
+ dos métodos
6
+
7
+ 00:03.400 --> 00:05.300
8
+ que no modifican nuestro
9
+ array,
10
+
11
+ 00:05.300 --> 00:07.400
12
+ pero nos ayuda a encontrar
13
+ elementos
14
+
15
+ 00:07.400 --> 00:09.400
16
+ y también índices en un
17
+ array.
18
+
19
+ 00:09.400 --> 00:12.200
20
+ Ellos son find y
21
+ findIndex.
22
+
23
+ 00:12.200 --> 00:15.100
24
+ El primero de ellos justamente es
25
+ find
26
+
27
+ 00:15.100 --> 00:17.800
28
+ y nos devuelve el primer
29
+ elemento
30
+
31
+ 00:17.800 --> 00:19.900
32
+ que cumpla con una
33
+ condición
34
+
35
+ 00:19.900 --> 00:22.400
36
+ que le mandemos justamente en una función.
37
+
38
+ 00:22.400 --> 00:23.900
39
+ Entonces, en este
40
+ caso,
41
+
42
+ 00:23.900 --> 00:27.000
43
+ si tenemos un array que dice 5, 10, 15 y 20,
44
+
45
+ 00:27.000 --> 00:30.000
46
+ y queremos el primer elemento que sea
47
+ mayor a 10,
48
+
49
+ 00:30.000 --> 00:32.300
50
+ por ejemplo, nos va a devolver
51
+ 15.
52
+
53
+ 00:32.300 --> 00:35.500
54
+ Vamos a revisar cómo sería esto en el código.
55
+
56
+ 00:35.500 --> 00:37.500
57
+ En este caso, sería lo
58
+ siguiente.
59
+
60
+ 00:37.500 --> 00:39.500
61
+ Vamos a colocar que vamos a
62
+ encontrar
63
+
64
+ 00:39.500 --> 00:44.500
65
+ el primer, first, number,
66
+ number,
67
+
68
+ 00:44.500 --> 00:46.000
69
+ que sea mayor a
70
+ 10.
71
+
72
+ 00:46.000 --> 00:50.500
73
+ Entonces, greater than
74
+ 10.
75
+
76
+ 00:50.500 --> 00:54.000
77
+ Y este valor necesita, por supuesto,
78
+
79
+ 00:54.000 --> 00:56.500
80
+ un array que vamos a crear por
81
+ acá.
82
+
83
+ 00:56.500 --> 01:00.000
84
+ Y este array va a llamarse los múltiplos,
85
+
86
+ 01:00.000 --> 01:04.000
87
+ múltiples of
88
+ 5.
89
+
90
+ 01:04.000 --> 01:06.000
91
+ Múltiplos de
92
+ 5.
93
+
94
+ 01:06.000 --> 01:11.000
95
+ Y acá vamos a colocar 5, 10, 15 y 20.
96
+
97
+ 01:11.000 --> 01:13.000
98
+ En este caso,
99
+ acá,
100
+
101
+ 01:13.000 --> 01:16.500
102
+ para encontrar el primer valor que sea
103
+ mayor a 10,
104
+
105
+ 01:16.500 --> 01:18.500
106
+ vamos a tomar nuestro
107
+ array,
108
+
109
+ 01:18.500 --> 01:20.500
110
+ le vamos a decir
111
+ find,
112
+
113
+ 01:20.500 --> 01:24.000
114
+ y dentro de find iría la función con la
115
+ condición.
116
+
117
+ 01:24.000 --> 01:26.000
118
+ En este caso, ¿qué
119
+ necesitamos?
120
+
121
+ 01:26.000 --> 01:30.000
122
+ Que este número, number, sea
123
+ qué?
124
+
125
+ 01:30.000 --> 01:32.500
126
+ Sea mayor a
127
+ 10.
128
+
129
+ 01:32.500 --> 01:35.000
130
+ Entonces, vamos a colocar por acá esto,
131
+
132
+ 01:35.000 --> 01:37.500
133
+ y escribimos un
134
+ console.log,
135
+
136
+ 01:37.500 --> 01:41.000
137
+ tanto de esta variable de
138
+ acá,
139
+
140
+ 01:41.000 --> 01:43.000
141
+ vamos a copiarla, la
142
+ pegamos,
143
+
144
+ 01:43.000 --> 01:46.000
145
+ y también tomo esta variable y la pego.
146
+
147
+ 01:46.000 --> 01:48.500
148
+ Voy a correr nuestro
149
+ programa,
150
+
151
+ 01:48.500 --> 01:51.000
152
+ voy a colocar
153
+ node,
154
+
155
+ 01:51.000 --> 01:53.500
156
+ luego colocamos
157
+ clase,
158
+
159
+ 01:53.500 --> 01:56.500
160
+ find,
161
+ findIndex,
162
+
163
+ 01:56.500 --> 01:58.000
164
+ y aquí nos
165
+ sale.
166
+
167
+ 01:58.000 --> 01:59.500
168
+ Primero, nuestro
169
+ array,
170
+
171
+ 01:59.500 --> 02:02.500
172
+ es decir, que no ha sido mutado, no ha
173
+ sido modificado,
174
+
175
+ 02:02.500 --> 02:04.500
176
+ y segundo, tenemos, por
177
+ supuesto,
178
+
179
+ 02:04.500 --> 02:07.000
180
+ el resultado de nuestro
181
+ find.
182
+
183
+ 02:07.000 --> 02:11.500
184
+ Seguido, vamos a ver nuestro otro método,
185
+
186
+ 02:11.500 --> 02:13.500
187
+ que en este caso sería
188
+ findIndex.
189
+
190
+ 02:13.500 --> 02:15.500
191
+ ¿Qué va a hacer
192
+ findIndex?
193
+
194
+ 02:15.500 --> 02:17.500
195
+ Va a tomar justamente el
196
+ array
197
+
198
+ 02:17.500 --> 02:22.000
199
+ y nos va a devolver el índice del primer
200
+ elemento del array,
201
+
202
+ 02:22.000 --> 02:24.500
203
+ que también satisfaga esa condición.
204
+
205
+ 02:24.500 --> 02:27.500
206
+ Entonces, vamos a hacer eso aquí en
207
+ nuestro código.
208
+
209
+ 02:27.500 --> 02:30.000
210
+ Entonces, vamos a colocar findIndex,
211
+
212
+ 02:30.000 --> 02:32.500
213
+ y vamos a crear otro
214
+ array.
215
+
216
+ 02:32.500 --> 02:34.500
217
+ En este caso es
218
+ const,
219
+
220
+ 02:34.500 --> 02:39.500
221
+ random, voy a colocar un array de números
222
+ aleatorios,
223
+
224
+ 02:39.500 --> 02:42.000
225
+ entonces,
226
+ randomNumbers,
227
+
228
+ 02:42.000 --> 02:44.000
229
+ y aquí voy a crear mi
230
+ array,
231
+
232
+ 02:44.000 --> 02:46.000
233
+ que en este caso sería, por ejemplo,
234
+
235
+ 02:46.000 --> 02:52.000
236
+ 6, 14, 27, 56 y
237
+ 40,
238
+
239
+ 02:52.000 --> 02:54.500
240
+ que es lo mismo que tenemos aquí en
241
+ nuestro slide.
242
+
243
+ 02:54.500 --> 02:57.500
244
+ Y ahora, lo que hacemos es colocar const,
245
+
246
+ 02:57.500 --> 03:00.000
247
+ el índex, ¿de
248
+ quién?
249
+
250
+ 03:00.000 --> 03:02.500
251
+ De ese número que
252
+ queremos,
253
+
254
+ 03:02.500 --> 03:05.500
255
+ y number, esto va a ser igual a
256
+ quién?
257
+
258
+ 03:05.500 --> 03:08.500
259
+ A randomNumber,
260
+ punto,
261
+
262
+ 03:08.500 --> 03:12.000
263
+ findIndex,
264
+ findIndex.
265
+
266
+ 03:12.000 --> 03:14.500
267
+ ¿De quién? De algún
268
+ número.
269
+
270
+ 03:14.500 --> 03:18.000
271
+ Vamos a colocar, por ejemplo, number,
272
+ que sea mayor,
273
+
274
+ 03:18.000 --> 03:23.000
275
+ en este caso, number mayor a 50, por ejemplo.
276
+
277
+ 03:23.000 --> 03:27.000
278
+ Entonces, vamos a colocar de nuevo los dos
279
+ console.log,
280
+
281
+ 03:27.000 --> 03:29.500
282
+ voy a copiarme esos que tenemos por acá,
283
+
284
+ 03:29.500 --> 03:33.500
285
+ randomNumber y el
286
+ indexNumber.
287
+
288
+ 03:33.500 --> 03:36.500
289
+ Vamos a correr de nuevo nuestro programa,
290
+
291
+ 03:36.500 --> 03:39.500
292
+ y aquí tenemos nuestro array original,
293
+
294
+ 03:39.500 --> 03:42.500
295
+ y adicional, tenemos el índex del primer
296
+ elemento
297
+
298
+ 03:42.500 --> 03:44.500
299
+ que cumple con esta
300
+ condición,
301
+
302
+ 03:44.500 --> 03:46.500
303
+ el primer elemento que es, por supuesto,
304
+
305
+ 03:46.500 --> 03:48.500
306
+ mayor a 50 de
307
+ 56,
308
+
309
+ 03:48.500 --> 04:12.500
310
+ y vemos que su índex es 0, 1, 2 y 3.
311
+
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/06-clase-find-findindex_ec26c6f8-de53-4d67-8a48-801ff513a78b.js ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Methods that iterate over an array.
2
+ // Methods that DO NOT modify the original array (Immutability).
3
+
4
+ // find()
5
+
6
+ const multipleOf5 = [5, 10, 15, 20]
7
+ const firstNumberGreaterThan10 = multipleOf5.find(number => number > 10)
8
+
9
+ console.log(multipleOf5)
10
+ console.log(firstNumberGreaterThan10)
11
+
12
+ // findIndex()
13
+
14
+ const randomNumber = [6, 14, 27, 56, 40]
15
+ const indexNumber = randomNumber.findIndex(number => number > 50)
16
+
17
+ console.log(randomNumber)
18
+ console.log(indexNumber)
19
+
20
+ // Exercise: Raffle Winner Verification Program
21
+
22
+ const winningParticipants = [
23
+ { id: 1, name: 'Jennifer', ticketNumber: 001 },
24
+ { id: 8, name: 'Michael', ticketNumber: 008 },
25
+ { id: 15, name: 'Emily', ticketNumber: 015 },
26
+ { id: 47, name: 'Charlie', ticketNumber: 047 }
27
+ ]
28
+
29
+ function findWinnerByName (name) {
30
+ const winner = winningParticipants.find(participants => participants.name === name)
31
+ return winner || 'No winner found with that name.'
32
+ }
33
+
34
+ function findIndexWinnerByTicket (ticketNumber) {
35
+ const index = winningParticipants.findIndex(participants => participants.ticketNumber === ticketNumber)
36
+ return index !== -1 ? index : 'No winner found with that ticket number.'
37
+ }
38
+
39
+ function displayWinnerInformation (winner) {
40
+ if (winner !== undefined && winner != null && winner !== 'No winner found with that name.') {
41
+ console.log('Winner information: ', winner)
42
+ } else {
43
+ console.log('No winner found.')
44
+ }
45
+ }
46
+
47
+ const winnerByName = findWinnerByName('Emily')
48
+ const indexWinnerByTicket = findIndexWinnerByTicket(008)
49
+
50
+ displayWinnerInformation(winnerByName)
51
+ console.log('Index of Winner by Ticket Number: ', indexWinnerByTicket)
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Uso del método slice para extraer porciones de un array en JavaScript.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d886bbe5c404351984dbb168c48f0bf0b800a84dcbf87b8a8b415edf292cb12e
3
+ size 29554197
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-Uso del método slice para extraer porciones de un array en JavaScript.vtt ADDED
@@ -0,0 +1,362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:04.280
4
+ ¿Qué pasaría si nosotros quisiéramos tomar
5
+ solo la porción
6
+
7
+ 00:04.280 --> 00:07.040
8
+ o una pequeña parte de un
9
+ array?
10
+
11
+ 00:07.040 --> 00:10.800
12
+ Pues bien, para ello podemos utilizar el
13
+ método slice,
14
+
15
+ 00:10.800 --> 00:13.920
16
+ que nos va a permitir justamente tomar una
17
+ porción,
18
+
19
+ 00:13.920 --> 00:17.360
20
+ así como estamos viendo en este ejemplo de
21
+ acá, de un array.
22
+
23
+ 00:17.360 --> 00:19.920
24
+ Entonces tenemos un array que en este
25
+ caso
26
+
27
+ 00:19.920 --> 00:22.080
28
+ tiene como diferentes tipos de juegos,
29
+
30
+ 00:22.080 --> 00:25.440
31
+ y si nosotros solamente quisiéramos,
32
+ por ejemplo,
33
+
34
+ 00:25.440 --> 00:28.360
35
+ desde acá hasta
36
+ acá,
37
+
38
+ 00:28.360 --> 00:31.800
39
+ pues lo podemos hacer justamente con slice.
40
+
41
+ 00:31.800 --> 00:34.360
42
+ ¿Cómo lo vamos a utilizar en el
43
+ código?
44
+
45
+ 00:34.360 --> 00:37.040
46
+ Vamos a colocar, por ejemplo, slice,
47
+
48
+ 00:37.040 --> 00:39.880
49
+ y seguido lo que vamos a colocar es un array,
50
+
51
+ 00:39.880 --> 00:43.080
52
+ vamos a colocar un array, por ejemplo,
53
+ de animales,
54
+
55
+ 00:43.080 --> 00:45.440
56
+ y este va a contener, por
57
+ ejemplo,
58
+
59
+ 00:45.440 --> 00:49.960
60
+ vamos a colocar hormiga, vamos a colocar
61
+ pison,
62
+
63
+ 00:49.960 --> 00:53.840
64
+ vamos a colocar diferentes tipos de animales,
65
+ camel,
66
+
67
+ 00:53.840 --> 01:00.080
68
+ vamos a colocar un pato y coloquemos un
69
+ elefante.
70
+
71
+ 01:00.080 --> 01:01.360
72
+ Elefante.
73
+
74
+ 01:01.360 --> 01:02.400
75
+ Listo.
76
+
77
+ 01:02.400 --> 01:05.920
78
+ Teniendo esos animales, ¿qué pasaría si
79
+ empezamos nosotros
80
+
81
+ 01:05.920 --> 01:09.880
82
+ a querer solamente fracciones de esos
83
+ animales, no todos?
84
+
85
+ 01:09.880 --> 01:13.600
86
+ Para ello, entonces, utilizamos nuestro
87
+ console.log,
88
+
89
+ 01:13.600 --> 01:18.160
90
+ vamos a empezar a revisar cómo funciona
91
+ este método de slice.
92
+
93
+ 01:18.160 --> 01:23.360
94
+ Entonces colocamos.slice y debemos pasarle 1,
95
+
96
+ 01:23.360 --> 01:25.720
97
+ 0, 1 o 2
98
+ parámetros.
99
+
100
+ 01:25.720 --> 01:28.760
101
+ Revisemos cómo sería con un solo parámetro.
102
+
103
+ 01:28.760 --> 01:32.600
104
+ En este caso, si le pasamos el número 2,
105
+
106
+ 01:32.600 --> 01:36.880
107
+ él va a tomarlo como si fuera el índice de
108
+ el array
109
+
110
+ 01:36.880 --> 01:40.360
111
+ desde el valor que nosotros queremos tomar.
112
+
113
+ 01:40.360 --> 01:43.600
114
+ Por ejemplo, si decimos 2, en este caso lo
115
+ que estamos
116
+
117
+ 01:43.600 --> 01:48.000
118
+ diciendo es que queremos solamente desde
119
+ la posición 2,
120
+
121
+ 01:48.000 --> 01:51.280
122
+ es decir, desde el camello hasta el elefante.
123
+
124
+ 01:51.280 --> 01:52.200
125
+ Vamos a
126
+ revisarlo.
127
+
128
+ 01:52.200 --> 01:54.480
129
+ Corramos nuestro código,
130
+ note.
131
+
132
+ 01:57.920 --> 02:02.040
133
+ Y aquí vemos justamente esa porción o ese
134
+ fragmento del
135
+
136
+ 02:02.040 --> 02:05.840
137
+ array desde la posición número
138
+ 2.
139
+
140
+ 02:05.840 --> 02:09.640
141
+ Ahora, ¿qué pasaría si quisiéramos decirle
142
+ que desde
143
+
144
+ 02:09.640 --> 02:14.560
145
+ la posición 2 hasta el pato que tenemos
146
+ acá?
147
+
148
+ 02:14.560 --> 02:19.720
149
+ Le decimos 0, 1, 2, 3, pero en este caso
150
+ debemos agregarle una
151
+
152
+ 02:19.720 --> 02:23.200
153
+ posición más, es decir, la posición número 4.
154
+
155
+ 02:23.200 --> 02:24.120
156
+ ¿Por
157
+ qué?
158
+
159
+ 02:24.120 --> 02:28.720
160
+ Porque él no tiene el valor final incluido.
161
+
162
+ 02:28.720 --> 02:31.440
163
+ Entonces, él lo que hace es decir, ah, mira,
164
+
165
+ 02:31.440 --> 02:34.520
166
+ ¿quieres una porción desde la 2 hasta la
167
+ 4?
168
+
169
+ 02:34.520 --> 02:39.120
170
+ Bueno, yo te la voy a dar, pero en mi caso
171
+ va a ser 0, 1,
172
+
173
+ 02:39.120 --> 02:45.080
174
+ 2 desde camello hasta el 3, es decir,
175
+ hasta 4 menos 1.
176
+
177
+ 02:45.080 --> 02:48.480
178
+ Vamos a correr nuestro código para revisarlo.
179
+
180
+ 02:48.480 --> 02:51.360
181
+ Acá tenemos, en efecto, nuestra porción,
182
+
183
+ 02:51.360 --> 02:55.040
184
+ pero esa porción solamente es de la
185
+ posición 2 y de la posición
186
+
187
+ 02:55.040 --> 02:56.360
188
+ número
189
+ 3.
190
+
191
+ 02:56.360 --> 02:59.640
192
+ Revisémoslo con otro valor que tengamos.
193
+
194
+ 02:59.640 --> 03:02.680
195
+ Supongamos que ahora sí queremos incluir
196
+ el elefante.
197
+
198
+ 03:02.680 --> 03:06.240
199
+ Entonces, en este caso, lo que hacemos es
200
+ decir, por ejemplo,
201
+
202
+ 03:06.240 --> 03:10.240
203
+ cambiamos este índice por el 1, que
204
+ empieza desde Bison.
205
+
206
+ 03:10.240 --> 03:13.000
207
+ Y aquí le colocamos la posición número 5,
208
+
209
+ 03:13.000 --> 03:17.080
210
+ que en este caso sería 1, 2, 3, 4, 5.
211
+
212
+ 03:17.080 --> 03:19.800
213
+ Y hoy podemos poner, por ejemplo, 6.
214
+
215
+ 03:19.800 --> 03:21.160
216
+ Vamos a
217
+ guardar.
218
+
219
+ 03:21.160 --> 03:22.720
220
+ Corremos nuestro
221
+ código.
222
+
223
+ 03:22.720 --> 03:26.360
224
+ Y en este caso nos sale Bison, Camel,
225
+ Duck y Elefante.
226
+
227
+ 03:26.360 --> 03:30.960
228
+ Entonces, ahí sí ya nos incluye justamente
229
+ este elefante.
230
+
231
+ 03:30.960 --> 03:34.240
232
+ ¿Qué pasa si nosotros quisiéramos ahora,
233
+
234
+ 03:34.240 --> 03:36.520
235
+ como empezar a contar de atrás para
236
+ adelante?
237
+
238
+ 03:36.520 --> 03:39.800
239
+ Supongamos que tenemos un montón de
240
+ valores y solamente
241
+
242
+ 03:39.800 --> 03:41.400
243
+ queremos los dos
244
+ últimos.
245
+
246
+ 03:41.400 --> 03:44.400
247
+ ¿Cómo nos vamos a poner a contar un montón
248
+ de posiciones?
249
+
250
+ 03:44.400 --> 03:49.240
251
+ Bueno, para ese caso, lo que hace Slice es
252
+ permitirnos también
253
+
254
+ 03:49.240 --> 03:51.280
255
+ utilizar los números
256
+ negativos.
257
+
258
+ 03:51.280 --> 03:54.840
259
+ Entonces, podemos utilizar, por ejemplo,
260
+ el menos 2.
261
+
262
+ 03:54.840 --> 03:58.640
263
+ Y él lo que hace es contar Elefante como
264
+ si fuera menos 1.
265
+
266
+ 03:58.640 --> 04:01.080
267
+ Es decir, se está empezando a devolver.
268
+
269
+ 04:01.080 --> 04:05.440
270
+ Y toma el Pato como si fuera la posición
271
+ número menos 2.
272
+
273
+ 04:05.440 --> 04:10.400
274
+ Y nos da esta última fracción de este array.
275
+
276
+ 04:10.400 --> 04:12.560
277
+ Si nosotros quisiéramos, por ejemplo,
278
+
279
+ 04:12.560 --> 04:17.000
280
+ empezar por un valor y terminar por algún
281
+ número del final,
282
+
283
+ 04:17.000 --> 04:18.200
284
+ también se
285
+ puede.
286
+
287
+ 04:18.200 --> 04:21.840
288
+ Es decir, podemos decirle que empiece desde 0,
289
+ 1, 2,
290
+
291
+ 04:21.840 --> 04:24.240
292
+ pero que termine en la posición menos 1.
293
+
294
+ 04:24.240 --> 04:28.040
295
+ Entonces, él también nos hace caso en este
296
+ sentido y nos da
297
+
298
+ 04:28.040 --> 04:32.600
299
+ este fragmento del array que es Camel y es
300
+ Duck, que es este.
301
+
302
+ 04:32.600 --> 04:36.080
303
+ Y este recordemos que el final no lo cuenta.
304
+
305
+ 04:36.080 --> 04:42.120
306
+ Y ya por último, también podemos colocar
307
+ un console.log de
308
+
309
+ 04:42.120 --> 04:44.600
310
+ lo que haría Slice
311
+ solito.
312
+
313
+ 04:44.600 --> 04:48.080
314
+ Es decir, sin ningún tipo de parámetro.
315
+
316
+ 04:48.080 --> 04:50.280
317
+ Entonces, vamos a correr nuestro código.
318
+
319
+ 04:50.280 --> 04:53.360
320
+ Y aquí vemos que él no haría absolutamente
321
+ nada.
322
+
323
+ 04:53.360 --> 04:57.320
324
+ Nos está devolviendo nuestro array original.
325
+
326
+ 04:57.320 --> 05:01.640
327
+ Y en este caso, también vemos que este
328
+ método como tal no nos
329
+
330
+ 05:01.640 --> 05:03.920
331
+ modifica este array
332
+ original.
333
+
334
+ 05:03.920 --> 05:07.040
335
+ Y por eso, pudimos también colocar varios
336
+ console.log
337
+
338
+ 05:07.040 --> 05:10.040
339
+ utilizando este método, precisamente por
340
+ la
341
+
342
+ 05:10.040 --> 05:11.040
343
+ inmutabilidad.
344
+
345
+ 05:11.040 --> 05:13.920
346
+ Entonces, recordemos que podemos utilizar 0,
347
+
348
+ 05:13.920 --> 05:16.880
349
+ que en este caso es para que nos devuelva
350
+ todo el array.
351
+
352
+ 05:16.880 --> 05:21.160
353
+ Y también podemos utilizar un solo
354
+ parámetro y dos
355
+
356
+ 05:21.160 --> 05:25.120
357
+ parámetros, que también pueden ser desde
358
+ comenzar el array,
359
+
360
+ 05:25.120 --> 05:42.160
361
+ como también desde el final de nuestro array.
362
+
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/07-clase-slice_534b3124-8beb-4455-8f09-12c56b9174b6.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ // slice()
2
+
3
+ const animals = ['ant', 'bison', 'camel', 'duck', 'elephant']
4
+
5
+ console.log(animals.slice(2))
6
+ console.log(animals.slice(2, 4))
7
+ console.log(animals.slice(1, 6))
8
+ console.log(animals.slice(-2))
9
+ console.log(animals.slice(2, -1))
10
+ console.log(animals.slice())
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Uso del Spread Operator en JavaScript Copia Combinación y Más.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:485fe2b55cd4965cf823a150bab6e333fe956f51fd62017376970d851e8beb65
3
+ size 40113955
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-Uso del Spread Operator en JavaScript Copia Combinación y Más.vtt ADDED
@@ -0,0 +1,462 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:03.680
4
+ En esta clase vamos a estar hablando sobre
5
+ Spread Operator
6
+
7
+ 00:03.680 --> 00:07.760
8
+ y también todas las funcionalidades que
9
+ podemos hacer con este operador.
10
+
11
+ 00:07.760 --> 00:11.840
12
+ El primero de ellos justamente es la copia
13
+ de un array,
14
+
15
+ 00:11.840 --> 00:14.120
16
+ así como estamos viendo aquí en el documento.
17
+
18
+ 00:14.120 --> 00:16.560
19
+ Podemos tener, por ejemplo, un
20
+ array
21
+
22
+ 00:16.560 --> 00:21.120
23
+ y seguido, si nosotros queremos obtener
24
+ una copia de este array,
25
+
26
+ 00:21.120 --> 00:23.960
27
+ lo podemos hacer con Spread Operator.
28
+
29
+ 00:23.960 --> 00:26.440
30
+ Entonces, escribamos acá, por ejemplo,
31
+
32
+ 00:26.440 --> 00:29.320
33
+ copying an
34
+ array.
35
+
36
+ 00:29.320 --> 00:32.840
37
+ Aquí lo que hacemos es decir, vamos a
38
+ tener un array,
39
+
40
+ 00:32.840 --> 00:36.360
41
+ en este caso vamos a decir que es el array
42
+ original,
43
+
44
+ 00:36.360 --> 00:38.880
45
+ original
46
+ array,
47
+
48
+ 00:38.880 --> 00:42.040
49
+ y aquí vamos a colocarle una serie de números,
50
+
51
+ 00:42.040 --> 00:45.400
52
+ puede ser, por ejemplo, 1, 2, 3, 4 y 5.
53
+
54
+ 00:45.400 --> 00:49.920
55
+ Y seguido, lo que vamos a hacer es crear
56
+ una copia de ese array.
57
+
58
+ 00:49.920 --> 00:54.000
59
+ Entonces, vamos a decir, el array que fue
60
+ copiado,
61
+
62
+ 00:54.000 --> 00:57.240
63
+ la copia, podemos colocarlo en presente,
64
+
65
+ 00:57.240 --> 01:01.160
66
+ copying of an
67
+ array.
68
+
69
+ 01:01.160 --> 01:01.660
70
+ Listo.
71
+
72
+ 01:01.660 --> 01:05.560
73
+ Y aquí nos quedaría como, podríamos
74
+ colocar un array,
75
+
76
+ 01:05.560 --> 01:08.800
77
+ en este caso, que es donde nosotros
78
+ queremos almacenar los
79
+
80
+ 01:08.800 --> 01:12.640
81
+ diferentes valores, y utilizamos tres puntos,
82
+
83
+ 01:12.640 --> 01:16.600
84
+ que este es nuestro Spread Operator,
85
+
86
+ 01:16.600 --> 01:20.480
87
+ y seguido le colocamos el valor del array
88
+ anterior que
89
+
90
+ 01:20.480 --> 01:21.800
91
+ colocamos.
92
+
93
+ 01:21.800 --> 01:25.760
94
+ Vamos a escribir un console.log para
95
+ revisar ambos.
96
+
97
+ 01:25.760 --> 01:30.360
98
+ Vamos a revisar cuál es el original y cuál
99
+ es la copia.
100
+
101
+ 01:30.360 --> 01:32.800
102
+ Vamos a guardar nuestro código y a correrlo.
103
+
104
+ 01:36.240 --> 01:38.360
105
+ Y aquí ya estamos viendo que tenemos,
106
+
107
+ 01:38.360 --> 01:43.560
108
+ uno, el array original, 1, 2, 3, 4, 5,
109
+ y seguido, la copia.
110
+
111
+ 01:43.560 --> 01:47.880
112
+ Estas copias normalmente es para no mutar
113
+ ciertos valores,
114
+
115
+ 01:47.880 --> 01:51.080
116
+ y por eso normalmente a veces utilizamos
117
+ lo que es la copia,
118
+
119
+ 01:51.080 --> 01:55.240
120
+ y en estos casos también puede ser muy
121
+ útil para poder hacer
122
+
123
+ 01:55.240 --> 01:58.120
124
+ esas copias sin modificar justamente los
125
+ valores
126
+
127
+ 01:58.120 --> 02:01.240
128
+ originales que tenemos en cierto código.
129
+
130
+ 02:01.240 --> 02:06.440
131
+ Por otro lado, podemos utilizar el Spread
132
+ para combinar arrays.
133
+
134
+ 02:06.440 --> 02:13.600
135
+ Entonces, voy a colocar por acá, número 2,
136
+ combining arrays,
137
+
138
+ 02:13.600 --> 02:15.680
139
+ y vamos a crear dos
140
+ arrays.
141
+
142
+ 02:15.680 --> 02:19.280
143
+ El primero va a ser, por ejemplo, unos
144
+ números.
145
+
146
+ 02:19.280 --> 02:22.160
147
+ Nuevamente vamos a colocar 1, 2,
148
+ 3,
149
+
150
+ 02:22.160 --> 02:25.440
151
+ y vamos a colocar otro array, que en este
152
+ caso sea,
153
+
154
+ 02:25.440 --> 02:29.480
155
+ por ejemplo, 4, 5, y
156
+ 6.
157
+
158
+ 02:29.480 --> 02:33.040
159
+ En esto lo que vamos a hacer es crear otra
160
+ variable que diga
161
+
162
+ 02:33.040 --> 02:37.400
163
+ combined array, y le vamos a decir lo
164
+ siguiente.
165
+
166
+ 02:37.400 --> 02:40.960
167
+ Creamos nuestro array, seguido utilizamos
168
+ nuestro Spread
169
+
170
+ 02:40.960 --> 02:46.480
171
+ Operator, que sería 1, 2, 3, y copiamos
172
+ nuestro array número
173
+
174
+ 02:46.480 --> 02:46.960
175
+ 1.
176
+
177
+ 02:46.960 --> 02:50.360
178
+ Lo que estamos haciendo es como tomar todo
179
+ esto y, pum,
180
+
181
+ 02:50.360 --> 02:52.320
182
+ desplegarlo
183
+ acá.
184
+
185
+ 02:52.320 --> 02:56.960
186
+ Seguido colocamos una coma, 1, 2, 3, array 2,
187
+
188
+ 02:56.960 --> 03:01.400
189
+ y después lo que hacemos es colocar console.
190
+ log para
191
+
192
+ 03:01.400 --> 03:04.040
193
+ revisar todas estas cosas que acabamos de
194
+ hacer.
195
+
196
+ 03:04.040 --> 03:07.680
197
+ Entonces, array número 1, array número 2,
198
+
199
+ 03:07.680 --> 03:10.240
200
+ y la combinación de este
201
+ array.
202
+
203
+ 03:10.240 --> 03:14.440
204
+ Vamos a correr nuevamente nuestro código.
205
+
206
+ 03:14.440 --> 03:18.200
207
+ Y aquí revisamos que tenemos 1, 2, 3 como
208
+ el primer array,
209
+
210
+ 03:18.200 --> 03:22.200
211
+ el segundo 4, 5, 6, y después tenemos la
212
+ combinación de
213
+
214
+ 03:22.200 --> 03:25.280
215
+ ambos utilizando Spread
216
+ Operator.
217
+
218
+ 03:25.280 --> 03:30.720
219
+ Por otro lado, podríamos crear arrays
220
+ teniendo como base otro
221
+
222
+ 03:30.720 --> 03:33.680
223
+ array y adicionándole diferentes elementos.
224
+
225
+ 03:33.680 --> 03:36.720
226
+ Por ejemplo, tenemos aquí, crea un array,
227
+
228
+ 03:36.720 --> 03:39.400
229
+ que en este caso tendríamos unos libros
230
+ que son el rojo,
231
+
232
+ 03:39.400 --> 03:43.520
233
+ el verde, el azul y el naranja, pero
234
+ podríamos tomar ese que ya
235
+
236
+ 03:43.520 --> 03:48.640
237
+ tenemos y adicionarle 1, que en este caso
238
+ sería el amarillo.
239
+
240
+ 03:48.640 --> 03:51.200
241
+ En código esto se vería de la siguiente
242
+ manera.
243
+
244
+ 03:51.200 --> 03:59.680
245
+ Vamos a colocar acá, 3, creating arrays
246
+ with additional
247
+
248
+ 03:59.680 --> 04:01.120
249
+ elements.
250
+
251
+ 04:01.120 --> 04:02.080
252
+ Listo.
253
+
254
+ 04:02.080 --> 04:05.080
255
+ Vamos a crear un array, que en este caso
256
+ vamos a colocar que
257
+
258
+ 04:05.080 --> 04:07.080
259
+ es como el array
260
+ base.
261
+
262
+ 04:07.080 --> 04:10.960
263
+ Y este array base va a tener elementos,
264
+ por ejemplo,
265
+
266
+ 04:10.960 --> 04:12.200
267
+ 1, 2 y
268
+ 3.
269
+
270
+ 04:12.200 --> 04:19.840
271
+ Seguido, vamos a colocar array with
272
+ additional elements.
273
+
274
+ 04:19.840 --> 04:24.000
275
+ Y vamos a decirle, entonces, vamos a abrir
276
+ un array,
277
+
278
+ 04:24.000 --> 04:25.960
279
+ en este caso, las
280
+ llaves.
281
+
282
+ 04:25.960 --> 04:29.560
283
+ Seguido, vamos a colocar el Spread Operator,
284
+ 1, 2, 3.
285
+
286
+ 04:29.560 --> 04:35.000
287
+ Le decimos que nos copie este array que
288
+ tenemos como base y
289
+
290
+ 04:35.000 --> 04:38.560
291
+ que adicional nos agregue otros elementos,
292
+ por ejemplo,
293
+
294
+ 04:38.560 --> 04:41.040
295
+ el 4, el 5 y el
296
+ 6.
297
+
298
+ 04:41.040 --> 04:47.120
299
+ Vamos a colocar console.log de estas
300
+ variables que acabamos
301
+
302
+ 04:47.120 --> 04:48.000
303
+ de
304
+ crear.
305
+
306
+ 04:48.000 --> 04:51.200
307
+ Vamos a colocar base array y este array
308
+ with additional
309
+
310
+ 04:51.200 --> 04:54.720
311
+ elements y corremos nuestro
312
+ código.
313
+
314
+ 04:54.720 --> 04:59.440
315
+ Acá ya revisamos nuestros dos últimos arrays,
316
+ que sería 1,
317
+
318
+ 04:59.440 --> 05:02.080
319
+ 2, 3, como el array
320
+ base.
321
+
322
+ 05:02.080 --> 05:06.720
323
+ Y luego tenemos 1, 2, 3 y otros elementos
324
+ que le agregamos
325
+
326
+ 05:06.720 --> 05:09.440
327
+ justamente a ese array que es
328
+ base.
329
+
330
+ 05:09.440 --> 05:12.480
331
+ Y, por supuesto, nos estamos modificando
332
+ nuestro array
333
+
334
+ 05:12.480 --> 05:13.600
335
+ original.
336
+
337
+ 05:13.600 --> 05:17.040
338
+ Por otro lado, otra cosa muy interesante
339
+ que podemos hacer
340
+
341
+ 05:17.040 --> 05:22.360
342
+ con Spread Operators es pasarle parámetros
343
+ a una función.
344
+
345
+ 05:22.360 --> 05:27.640
346
+ Por ejemplo, vamos a colocar pass elements
347
+ to functions.
348
+
349
+ 05:27.640 --> 05:32.920
350
+ Si tuviéramos una función que sea de suma
351
+ y esta función lo
352
+
353
+ 05:32.920 --> 05:38.120
354
+ que hace es sumar en return, sumar tres
355
+ valores.
356
+
357
+ 05:38.120 --> 05:42.720
358
+ Vamos a colocarle, por ejemplo, acá a, b y c.
359
+
360
+ 05:42.720 --> 05:45.160
361
+ Y este return, esta suma como
362
+ tal,
363
+
364
+ 05:45.160 --> 05:49.040
365
+ va a ser la suma de a más b más
366
+ c.
367
+
368
+ 05:49.040 --> 05:51.800
369
+ Pues, lo que podemos hacer es decir,
370
+
371
+ 05:51.800 --> 05:54.640
372
+ ah, bueno, yo quiero ejecutar esa función,
373
+
374
+ 05:54.640 --> 05:57.800
375
+ pero no le quiero pasar los valores si
376
+ nosotros quisiéramos
377
+
378
+ 05:57.800 --> 06:00.360
379
+ pasarle los valores normalmente antes de todo.
380
+
381
+ 06:00.360 --> 06:02.440
382
+ Sería, por ejemplo, 1, 2,
383
+ 3.
384
+
385
+ 06:02.440 --> 06:05.160
386
+ Si nosotros quisiéramos cambiar esa forma
387
+ de ejecución
388
+
389
+ 06:05.160 --> 06:08.600
390
+ pasándole un array con toda la cantidad de
391
+ elementos que
392
+
393
+ 06:08.600 --> 06:12.440
394
+ queremos que se sumen acá, pues, lo
395
+ podemos hacer diciendo
396
+
397
+ 06:12.440 --> 06:17.840
398
+ const num, o numbers, va a ser igual a
399
+ quién?
400
+
401
+ 06:17.840 --> 06:20.360
402
+ A 1, 2 y
403
+ 3.
404
+
405
+ 06:20.360 --> 06:24.320
406
+ ¿Cómo se lo pasamos a esta suma utilizando
407
+ Spread Operators?
408
+
409
+ 06:24.320 --> 06:27.400
410
+ Bueno, vamos a colocarle acá, vamos a
411
+ borrar los parámetros,
412
+
413
+ 06:27.400 --> 06:31.720
414
+ le colocamos los tres puntos y seguido
415
+ colocamos nuestro array
416
+
417
+ 06:31.720 --> 06:35.000
418
+ con los tres valores que ya tenemos en el
419
+ array.
420
+
421
+ 06:35.000 --> 06:40.880
422
+ Aquí vamos a colocar const result y vamos
423
+ a colocar un
424
+
425
+ 06:40.880 --> 06:42.840
426
+ console.log de
427
+ quién?
428
+
429
+ 06:42.840 --> 06:46.120
430
+ De este resultado, para ver qué sucedió acá.
431
+
432
+ 06:46.120 --> 06:50.280
433
+ Entonces, corremos nuevamente nuestro
434
+ código y aquí ya
435
+
436
+ 06:50.280 --> 06:53.800
437
+ tenemos como resultado el 6, que es la
438
+ suma de 1, 2 y 3.
439
+
440
+ 06:53.800 --> 06:57.080
441
+ Y aquí ya vemos que podemos utilizar
442
+ también esta Spread
443
+
444
+ 06:57.080 --> 06:58.560
445
+ Operator, ¿para
446
+ qué?
447
+
448
+ 06:58.560 --> 07:02.760
449
+ Para pasar valores que tengamos en un
450
+ array justamente como
451
+
452
+ 07:02.760 --> 07:05.800
453
+ parámetros de una función, como en este caso.
454
+
455
+ 07:05.800 --> 07:09.280
456
+ Cuéntame, ¿cuál fue tu forma favorita de
457
+ utilizar los Spread
458
+
459
+ 07:09.280 --> 07:34.240
460
+ Operators en los
461
+ comentarios?
462
+
subir/Curso de Fundamentos de JavaScript/04-Manipulación de Arrays/08-clase-spread-operator_13d4bad1-6c65-47e2-bd80-89478793784f.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // 1. Copying an Array
2
+
3
+ const originalArray = [1, 2, 3, 4, 5]
4
+ const copyOfAnArray = [...originalArray]
5
+
6
+ console.log(originalArray)
7
+ console.log(copyOfAnArray)
8
+
9
+ // 2. Combining Arrrays
10
+
11
+ const array1 = [1, 2, 3]
12
+ const array2 = [4, 5, 6]
13
+ const combinedArray = [...array1, ...array2]
14
+
15
+ console.log(array1)
16
+ console.log(array2)
17
+ console.log(combinedArray)
18
+
19
+ // 3. Creating Arrays with Additional Elements
20
+
21
+ const baseArray = [1, 2, 3]
22
+ const arrayWithAdditionalElements = [...baseArray, 4, 5, 6]
23
+
24
+ console.log(baseArray)
25
+ console.log(arrayWithAdditionalElements)
26
+
27
+ // 4. Pass elements to functions
28
+
29
+ function sum (a, b, c) {
30
+ return a + b + c
31
+ }
32
+
33
+ const numbers = [1, 2, 3]
34
+ const result = sum(...numbers)
35
+
36
+ console.log(result)
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Programación Orientada a Objetos en JavaScript Conceptos y Práctica.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a6401628e109ea2e6434ddf6319f270d91ee6b8cf71491fd638b05d0abf9a86a
3
+ size 30413424
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Programación Orientada a Objetos en JavaScript Conceptos y Práctica.vtt ADDED
@@ -0,0 +1,529 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:02.400
4
+ Comencemos hablando de
5
+ objetos.
6
+
7
+ 00:02.400 --> 00:06.000
8
+ Y este es un término que posiblemente has
9
+ escuchado muchísimo.
10
+
11
+ 00:06.000 --> 00:09.400
12
+ Has escuchado de JSON, has escuchado de
13
+ objetos,
14
+
15
+ 00:09.400 --> 00:12.100
16
+ has escuchado de programación orientada a
17
+ objetos.
18
+
19
+ 00:12.100 --> 00:15.200
20
+ Y eso es la base de lo que va a hacer esta
21
+ clase.
22
+
23
+ 00:16.200 --> 00:17.600
24
+ ¿Qué son los
25
+ objetos?
26
+
27
+ 00:17.600 --> 00:20.600
28
+ ¿Cómo podemos traducirlos? ¿Cómo los vamos
29
+ a utilizar?
30
+
31
+ 00:20.600 --> 00:24.200
32
+ ¿Cómo puedo empezar a generar cosas con
33
+ objetos?
34
+
35
+ 00:24.200 --> 00:26.000
36
+ Vamos prácticamente a nuestro código.
37
+
38
+ 00:26.000 --> 00:30.200
39
+ Aquí voy a abrir algunos
40
+ comentarios
41
+
42
+ 00:31.600 --> 00:33.000
43
+ para empezar a
44
+ escribir.
45
+
46
+ 00:33.000 --> 00:38.800
47
+ Pero los objetos prácticamente podemos
48
+ traducirlos como una estructura,
49
+
50
+ 00:40.400 --> 00:42.000
51
+ como una estructura de
52
+ datos.
53
+
54
+ 00:42.000 --> 00:43.200
55
+ Prácticamente es
56
+ esto.
57
+
58
+ 00:43.200 --> 00:47.200
59
+ Un objeto a grandes rasgos es simplemente
60
+ una estructura de datos
61
+
62
+ 00:47.200 --> 00:50.400
63
+ que me ayuda a guardar valores de una
64
+ forma particular,
65
+
66
+ 00:50.400 --> 00:53.800
67
+ que se le llama Key
68
+ Value.
69
+
70
+ 00:53.800 --> 00:58.600
71
+ Esto quiere decir que va a haber algo que
72
+ se le llama propiedad
73
+
74
+ 00:58.600 --> 01:01.200
75
+ y el valor de la
76
+ propiedad.
77
+
78
+ 01:01.200 --> 01:03.600
79
+ Y esto es la forma que, o más
80
+ bien,
81
+
82
+ 01:03.600 --> 01:06.200
83
+ es lo que nos va a ayudar a generar la
84
+ estructura
85
+
86
+ 01:06.200 --> 01:09.600
87
+ de lo que conocemos como un
88
+ objeto.
89
+
90
+ 01:09.600 --> 01:12.400
91
+ ¿Cuál es esa estructura ya mucho más
92
+ generalizada?
93
+
94
+ 01:12.400 --> 01:14.200
95
+ Si tenemos aquí nuestro
96
+ objeto,
97
+
98
+ 01:14.200 --> 01:16.800
99
+ tienen que llevar un nombre al objeto,
100
+
101
+ 01:16.800 --> 01:18.400
102
+ abrimos
103
+ corchetes,
104
+
105
+ 01:18.400 --> 01:21.200
106
+ y adentro de los corchetes vamos a
107
+ poner
108
+
109
+ 01:21.200 --> 01:26.200
110
+ lo que se llaman las propiedades y el
111
+ valor de las propiedades.
112
+
113
+ 01:26.200 --> 01:29.800
114
+ Cada propiedad tiene que llevar un valor.
115
+
116
+ 01:29.800 --> 01:33.600
117
+ Después, si queremos agregar otro tipo de
118
+ propiedad,
119
+
120
+ 01:33.600 --> 01:37.400
121
+ agregamos otra propiedad igual a otro tipo
122
+ de valor,
123
+
124
+ 01:37.400 --> 01:41.000
125
+ que en este caso, el igual, si vemos ya la
126
+ estructura real,
127
+
128
+ 01:41.000 --> 01:44.400
129
+ es la propiedad, dos puntos y el valor.
130
+
131
+ 01:44.400 --> 01:48.400
132
+ La propiedad, dos puntos y el valor.
133
+
134
+ 01:48.400 --> 01:51.600
135
+ Si voy a agregar otra propiedad, agrego la
136
+ coma
137
+
138
+ 01:51.600 --> 01:54.200
139
+ y vuelvo a repetir lo
140
+ mismo.
141
+
142
+ 01:54.200 --> 01:57.400
143
+ Propiedad, dos puntos y el
144
+ valor.
145
+
146
+ 01:57.400 --> 02:00.800
147
+ Algo importante a destacar de la parte de
148
+ los objetos
149
+
150
+ 02:00.800 --> 02:02.400
151
+ es que, como te acabo de
152
+ decir,
153
+
154
+ 02:02.400 --> 02:04.000
155
+ esto es una estructura de
156
+ datos
157
+
158
+ 02:04.000 --> 02:06.400
159
+ que me ayuda a guardar
160
+ información.
161
+
162
+ 02:06.400 --> 02:08.400
163
+ Posiblemente, a tu edad no te queda claro de,
164
+
165
+ 02:08.400 --> 02:11.600
166
+ ok, no entiendo cómo querría yo guardar
167
+ propiedad y valor.
168
+
169
+ 02:11.600 --> 02:13.000
170
+ Aquí tengo una
171
+ pregunta.
172
+
173
+ 02:13.000 --> 02:14.800
174
+ Si yo te pido que, por
175
+ favor,
176
+
177
+ 02:14.800 --> 02:19.800
178
+ me generes una persona o me generes un
179
+ carro en JavaScript,
180
+
181
+ 02:19.800 --> 02:22.800
182
+ ¿cuál sería tu forma de construir una
183
+ persona
184
+
185
+ 02:22.800 --> 02:25.400
186
+ o construir un carro en
187
+ JavaScript?
188
+
189
+ 02:25.400 --> 02:29.800
190
+ Y ahí es donde empezamos a hablar de
191
+ abstraer las cosas,
192
+
193
+ 02:29.800 --> 02:32.400
194
+ abstraer la realidad y llevarlas a
195
+ programación.
196
+
197
+ 02:32.400 --> 02:35.600
198
+ Y ahí viene programación orientada a objetos.
199
+
200
+ 02:35.600 --> 02:38.800
201
+ Los objetos son la base de lo que nos va a
202
+ ayudar
203
+
204
+ 02:38.800 --> 02:41.200
205
+ a generar un paradigma de
206
+ programación
207
+
208
+ 02:41.200 --> 02:44.200
209
+ que es abstraer con los
210
+ objetos.
211
+
212
+ 02:44.200 --> 02:47.200
213
+ Abstraer cosas u objetos de la
214
+ realidad
215
+
216
+ 02:47.200 --> 02:49.200
217
+ para poderlas llevar a programación.
218
+
219
+ 02:49.200 --> 02:51.800
220
+ Entonces, vamos con esto a un
221
+ ejemplo
222
+
223
+ 02:51.800 --> 02:55.200
224
+ para que puedas ver entonces cómo podremos
225
+ construir
226
+
227
+ 02:55.200 --> 03:00.000
228
+ o podemos llevar a una persona a la
229
+ programación con un objeto.
230
+
231
+ 03:00.000 --> 03:03.000
232
+ Lo primero es voy a construir una
233
+ constante
234
+
235
+ 03:03.000 --> 03:05.200
236
+ que se va a llamar
237
+ persona.
238
+
239
+ 03:07.200 --> 03:09.400
240
+ Este va a ser nuestro primer objeto.
241
+
242
+ 03:09.400 --> 03:13.200
243
+ Después, te comenté que tenemos que tener
244
+ propiedades y valores.
245
+
246
+ 03:13.200 --> 03:15.200
247
+ Entonces, ¿qué forma a una
248
+ persona?
249
+
250
+ 03:15.200 --> 03:18.200
251
+ Si tuviéramos que escribir cuáles son las
252
+ propiedades de una persona,
253
+
254
+ 03:18.200 --> 03:20.800
255
+ ¿qué es lo que me dirías? Puedes colocarlo
256
+ en comentarios.
257
+
258
+ 03:20.800 --> 03:24.200
259
+ Pero de inicio te puedo decir una persona
260
+ lleva un nombre.
261
+
262
+ 03:24.200 --> 03:25.200
263
+ Perfecto.
264
+
265
+ 03:25.200 --> 03:28.200
266
+ Y en este caso, este nombre se va a llamar
267
+ John.
268
+
269
+ 03:29.200 --> 03:31.200
270
+ ¿Qué tipo de propiedad
271
+ lleva?
272
+
273
+ 03:31.200 --> 03:33.200
274
+ Tiene, por ejemplo,
275
+ edad.
276
+
277
+ 03:33.200 --> 03:34.200
278
+ OK.
279
+
280
+ 03:34.200 --> 03:37.200
281
+ Y esta edad es 30, por
282
+ ejemplo.
283
+
284
+ 03:37.200 --> 03:40.200
285
+ Aquí te das cuenta, estamos respetando lo
286
+ que es el tipo de valor.
287
+
288
+ 03:40.200 --> 03:44.200
289
+ Edad es un número, así que simplemente lo
290
+ colocamos como un número.
291
+
292
+ 03:44.200 --> 03:47.200
293
+ John es un string, así que lo colocamos en
294
+ comillas
295
+
296
+ 03:47.200 --> 03:50.200
297
+ para que se pueda poner como un string.
298
+
299
+ 03:50.200 --> 03:52.200
300
+ ¿Qué otro tipo de valor
301
+ llevaría?
302
+
303
+ 03:52.200 --> 03:54.200
304
+ Por ejemplo, ¿qué tipo de
305
+ propiedad?
306
+
307
+ 03:54.200 --> 03:57.200
308
+ Una persona puede tener, a lo mejor,
309
+ alguna dirección.
310
+
311
+ 03:57.200 --> 03:59.200
312
+ Y podemos
313
+ agregarlo.
314
+
315
+ 03:59.200 --> 04:04.200
316
+ Y esta dirección está compuesta por otro
317
+ tipo de propiedades y valores.
318
+
319
+ 04:04.200 --> 04:08.200
320
+ Así que aquí vamos a generar otro pequeño
321
+ objeto
322
+
323
+ 04:08.200 --> 04:10.200
324
+ que lleve otro tipo de
325
+ propiedades.
326
+
327
+ 04:10.200 --> 04:12.200
328
+ Que sería, por ejemplo,
329
+ calle.
330
+
331
+ 04:12.200 --> 04:13.200
332
+ OK.
333
+
334
+ 04:13.200 --> 04:23.200
335
+ Y la calle podemos decir que es Avenida
336
+ Insurgentes número 187.
337
+
338
+ 04:23.200 --> 04:26.200
339
+ Y que es de
340
+ ciudad.
341
+
342
+ 04:26.200 --> 04:29.200
343
+ Y es ciudad de
344
+ México.
345
+
346
+ 04:30.200 --> 04:31.200
347
+ Perfecto.
348
+
349
+ 04:31.200 --> 04:35.200
350
+ Ahora, dentro de la estructura de los objetos,
351
+
352
+ 04:35.200 --> 04:38.200
353
+ los objetos llevan propiedad y valor,
354
+
355
+ 04:38.200 --> 04:42.200
356
+ pero también hay algo que se le llama métodos.
357
+
358
+ 04:44.200 --> 04:46.200
359
+ ¿Y qué serían los
360
+ métodos?
361
+
362
+ 04:46.200 --> 04:50.200
363
+ Los métodos son funciones que están
364
+ adentro de objetos
365
+
366
+ 04:50.200 --> 04:52.200
367
+ que nos ayudan a generar la interacción.
368
+
369
+ 04:52.200 --> 04:54.200
370
+ Las propiedades nos dan
371
+ valor,
372
+
373
+ 04:54.200 --> 04:58.200
374
+ los objetos nos ayudan a generar interacción.
375
+
376
+ 04:58.200 --> 05:01.200
377
+ Entonces, vamos a ver cómo construiríamos
378
+ un método
379
+
380
+ 05:01.200 --> 05:02.200
381
+ adentro de un
382
+ objeto.
383
+
384
+ 05:02.200 --> 05:05.200
385
+ Por ejemplo, una persona puede saludar.
386
+
387
+ 05:05.200 --> 05:09.200
388
+ Y el saludar de una persona es como una
389
+ interacción
390
+
391
+ 05:09.200 --> 05:11.200
392
+ que no es prácticamente información,
393
+
394
+ 05:11.200 --> 05:13.200
395
+ pero simplemente genera una interacción.
396
+
397
+ 05:13.200 --> 05:17.200
398
+ Y esto es algo, es una acción que puede
399
+ llevar una persona.
400
+
401
+ 05:17.200 --> 05:19.200
402
+ Así que para poder construir un método,
403
+
404
+ 05:19.200 --> 05:22.200
405
+ nosotros generamos, por ejemplo, saludar.
406
+
407
+ 05:22.200 --> 05:24.200
408
+ Vamos a construir esta
409
+ función.
410
+
411
+ 05:24.200 --> 05:27.200
412
+ Y ya dentro de la función vamos a hacer la
413
+ acción.
414
+
415
+ 05:27.200 --> 05:33.200
416
+ En este caso, el saludar va a
417
+ ser,
418
+
419
+ 05:33.200 --> 05:37.200
420
+ vamos a utilizar partes del
421
+ objeto.
422
+
423
+ 05:37.200 --> 05:42.200
424
+ En este caso va a ser hola, mi nombre es,
425
+
426
+ 05:42.200 --> 05:47.200
427
+ y aquí vamos a colocar el nombre de
428
+ nuestro objeto persona.
429
+
430
+ 05:47.200 --> 05:51.200
431
+ Persona.nombre.
432
+
433
+ 05:51.200 --> 05:55.200
434
+ Estamos colocando el nombre del objeto de
435
+ nuestra persona.
436
+
437
+ 05:55.200 --> 05:58.200
438
+ Entonces es el nombre que le pertenece al
439
+ objeto
440
+
441
+ 05:58.200 --> 06:01.200
442
+ de este objeto
443
+ prácticamente.
444
+
445
+ 06:01.200 --> 06:02.200
446
+ Perfecto.
447
+
448
+ 06:02.200 --> 06:04.200
449
+ Entonces ya con esto tenemos una
450
+ estructura base
451
+
452
+ 06:04.200 --> 06:05.200
453
+ de qué es un
454
+ objeto.
455
+
456
+ 06:05.200 --> 06:08.200
457
+ Si yo te preguntara cómo llevarías a una
458
+ persona a programación,
459
+
460
+ 06:08.200 --> 06:10.200
461
+ sé que suena bastante
462
+ abstracto,
463
+
464
+ 06:10.200 --> 06:13.200
465
+ pero esto es parte del paradigma de
466
+ programación orientado a objeto.
467
+
468
+ 06:13.200 --> 06:16.200
469
+ Esta sería la respuesta de cómo
470
+ llevaríamos
471
+
472
+ 06:16.200 --> 06:18.200
473
+ a una persona a
474
+ programación.
475
+
476
+ 06:18.200 --> 06:21.200
477
+ Generamos un objeto que tiene ciertas
478
+ propiedades,
479
+
480
+ 06:21.200 --> 06:24.200
481
+ que tiene ciertos métodos que
482
+ forman
483
+
484
+ 06:24.200 --> 06:25.200
485
+ una
486
+ persona.
487
+
488
+ 06:25.200 --> 06:26.200
489
+ ¿Por
490
+ qué?
491
+
492
+ 06:26.200 --> 06:28.200
493
+ Porque tenemos el nombre, tenemos la edad,
494
+
495
+ 06:28.200 --> 06:29.200
496
+ podemos tener el
497
+ género,
498
+
499
+ 06:29.200 --> 06:32.200
500
+ podemos tener otro tipo de propiedades que
501
+ nos ayuden
502
+
503
+ 06:32.200 --> 06:34.200
504
+ a entender qué es una
505
+ persona.
506
+
507
+ 06:34.200 --> 06:36.200
508
+ En este caso aquí estamos agregando,
509
+ por ejemplo,
510
+
511
+ 06:36.200 --> 06:39.200
512
+ un pequeño objeto interno que tiene otro
513
+ tipo de propiedades
514
+
515
+ 06:39.200 --> 06:41.200
516
+ que es la dirección de la
517
+ persona.
518
+
519
+ 06:41.200 --> 06:43.200
520
+ Y estamos generando un método que es una
521
+ acción
522
+
523
+ 06:43.200 --> 06:45.200
524
+ que esta persona puede hacer, que es saludar.
525
+
526
+ 06:45.200 --> 06:55.200
527
+ Y al momento de saludar nos va a decir su
528
+ nombre.
529
+
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/01-index_2f0c6cdf-1728-43de-b87c-10c86349e8e1.js ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+
3
+ estructura de datos
4
+
5
+ key / value
6
+
7
+ objeto {
8
+ propiedad: valor,
9
+ propiedad: valor,
10
+ propiedad: valor
11
+ Metodos()
12
+ }
13
+
14
+ */
15
+
16
+ const persona = {
17
+ nombre: "John",
18
+ edad: 30,
19
+ direccion: {
20
+ calle: "Av Insurgentre 187",
21
+ ciudad: "CDMX",
22
+ },
23
+ saludar() {
24
+ console.log(`hola, mi nombre es ${persona.nombre}`);
25
+ },
26
+ };
27
+
28
+ // Imprimamos el objeto
29
+
30
+ console.log(persona);
31
+
32
+ // Imprimamos la propiedad nombre
33
+
34
+ console.log(persona.nombre);
35
+
36
+ // Imprimamos el metodo saludar
37
+
38
+ persona.saludar();
39
+
40
+ //
41
+ //
42
+ //
43
+ //
44
+ //
45
+ // Agrergamos una propiedad al objeto en este caso telefono
46
+
47
+ persona.telefono = "555-555-5555";
48
+
49
+ console.log(persona.telefono);
50
+
51
+ // Agregamos un metodo al objeto
52
+
53
+ persona.despedir = () => {
54
+ console.log("Adios");
55
+ };
56
+
57
+ persona.despedir();
58
+
59
+ // Acceder a una propiedad de un objeto anidado / Metodo
60
+
61
+ console.log(persona.direccion.calle);
62
+
63
+ //
64
+ //
65
+ //
66
+ //
67
+ //
68
+ //
69
+ // Eliminar una propiedad de un objeto
70
+
71
+ delete persona.telefono;
72
+
73
+ console.log(persona.telefono);
74
+
75
+ // Eliminar un metodo de un objeto
76
+
77
+ delete persona.despedir;
78
+
79
+ console.log(persona.despedir());
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Creación y Manipulación de Objetos en JavaScript.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7a5a7230b4e46ade5a1bade1048ac0029268dd9ddea1e7af0a641592f2c7ed43
3
+ size 77973677
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Creación y Manipulación de Objetos en JavaScript.vtt ADDED
@@ -0,0 +1,640 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:03.600
4
+ Cuando hablamos de objetos, podemos ver
5
+ los objetos como una
6
+
7
+ 00:03.600 --> 00:04.720
8
+ estructura de
9
+ datos.
10
+
11
+ 00:08.960 --> 00:11.480
12
+ Esto nos va a ayudar a guardar información
13
+ y la vamos a guardar
14
+
15
+ 00:11.480 --> 00:12.720
16
+ de una forma
17
+ particular.
18
+
19
+ 00:12.720 --> 00:19.320
20
+ Vamos a tomar en cuenta dos cosas, el key
21
+ y un value.
22
+
23
+ 00:19.320 --> 00:22.720
24
+ Este key value va a ser, va a usar una
25
+ propiedad y esa
26
+
27
+ 00:22.720 --> 00:24.560
28
+ propiedad va a tener un
29
+ valor.
30
+
31
+ 00:24.560 --> 00:26.880
32
+ Y así es como vamos a guardar la información.
33
+
34
+ 00:26.880 --> 00:30.840
35
+ Podemos ver el objeto, más o menos la
36
+ estructura sería
37
+
38
+ 00:30.840 --> 00:33.600
39
+ objeto.
40
+
41
+ 00:33.600 --> 00:35.360
42
+ Vamos a abrir nuestros
43
+ crochetes.
44
+
45
+ 00:35.360 --> 00:39.240
46
+ Y entonces aquí ponemos propiedad y esta
47
+ propiedad va
48
+
49
+ 00:39.240 --> 00:41.640
50
+ a tener el
51
+ valor.
52
+
53
+ 00:41.640 --> 00:43.400
54
+ Si queremos guardar más información,
55
+
56
+ 00:43.400 --> 00:49.920
57
+ ponemos una coma y bajamos propiedad y de
58
+ igual forma
59
+
60
+ 00:49.920 --> 00:50.960
61
+ valor.
62
+
63
+ 00:50.960 --> 00:55.400
64
+ Y así podemos continuar nosotros guardando
65
+ más propiedades que
66
+
67
+ 00:55.400 --> 00:57.800
68
+ a su vez tengan
69
+ valores.
70
+
71
+ 00:57.800 --> 01:01.440
72
+ Y si queremos ya no tener la propiedad y
73
+ valor, por ejemplo,
74
+
75
+ 01:01.440 --> 01:05.440
76
+ los objetos también tienen algo que se le
77
+ conoce como métodos.
78
+
79
+ 01:05.440 --> 01:09.640
80
+ Que los métodos son acciones que van a
81
+ hacer los objetos con
82
+
83
+ 01:09.640 --> 01:12.320
84
+ cierta información que
85
+ tengan.
86
+
87
+ 01:12.320 --> 01:15.320
88
+ La forma de generar los métodos es como si
89
+ hiciéramos una
90
+
91
+ 01:15.320 --> 01:19.240
92
+ función, pero esta función va a ir adentro
93
+ de nuestro objeto.
94
+
95
+ 01:19.240 --> 01:21.960
96
+ Entonces, ¿cómo llevamos esto a un objeto
97
+ en la realidad?
98
+
99
+ 01:21.960 --> 01:23.920
100
+ Pues bueno, esta es la
101
+ estructura,
102
+
103
+ 01:23.920 --> 01:26.880
104
+ pero vamos a construir en este momento un
105
+ objeto.
106
+
107
+ 01:26.880 --> 01:30.640
108
+ Entonces vamos a construir un objeto.
109
+
110
+ 01:30.640 --> 01:33.440
111
+ Empezamos con una constante y la constante
112
+ se va a llamar
113
+
114
+ 01:33.440 --> 01:34.880
115
+ persona.
116
+
117
+ 01:34.880 --> 01:37.880
118
+ Lo tenemos, va a ser igual a nuestros
119
+ crochetes.
120
+
121
+ 01:37.880 --> 01:40.680
122
+ Y entonces aquí comenzamos con nuestras
123
+ propiedades.
124
+
125
+ 01:40.680 --> 01:46.760
126
+ Primero se va a llamar nombre, que va a
127
+ ser igual a,
128
+
129
+ 01:46.760 --> 01:49.080
130
+ y vamos a utilizar un dato de string,
131
+
132
+ 01:49.080 --> 01:53.360
133
+ John, coma, para poder colocar la segunda
134
+ propiedad,
135
+
136
+ 01:53.360 --> 01:55.640
137
+ que va a ser igual a, que va a ser edad.
138
+
139
+ 01:55.640 --> 02:00.600
140
+ Y en edad vamos a utilizar un tipo de dato
141
+ que es número.
142
+
143
+ 02:00.600 --> 02:03.760
144
+ Y ahora vamos a poner
145
+ dirección.
146
+
147
+ 02:03.760 --> 02:07.440
148
+ Y la dirección va a ser en sí otro pequeño
149
+ objeto unidado,
150
+
151
+ 02:07.440 --> 02:10.600
152
+ porque va a llevar más propiedades, que
153
+ sería calle.
154
+
155
+ 02:10.600 --> 02:15.360
156
+ Y esta calle va a ser avenida, esto tiene
157
+ que ir adentro,
158
+
159
+ 02:15.360 --> 02:22.200
160
+ avenida Insurgentes, número 187, coma.
161
+
162
+ 02:22.200 --> 02:25.800
163
+ Y ponemos otra propiedad, que sería ciudad.
164
+
165
+ 02:25.800 --> 02:29.000
166
+ Y la ciudad va a ser Ciudad de México.
167
+
168
+ 02:29.000 --> 02:33.320
169
+ Aquí salimos y como estamos saliendo de
170
+ esta propiedad y
171
+
172
+ 02:33.320 --> 02:36.600
173
+ vamos a colocar más, ponemos una coma.
174
+
175
+ 02:36.600 --> 02:39.360
176
+ Y ahora vamos a construir un método que se
177
+ va a llamar
178
+
179
+ 02:39.360 --> 02:40.520
180
+ saludar.
181
+
182
+ 02:40.520 --> 02:43.720
183
+ Y esto vamos a utilizar la estructura que
184
+ conocemos ya de
185
+
186
+ 02:43.720 --> 02:45.920
187
+ poder generar una
188
+ función.
189
+
190
+ 02:45.920 --> 02:49.440
191
+ Entonces el saludar lo que va a hacer es
192
+ console.log y va a
193
+
194
+ 02:49.440 --> 02:52.520
195
+ decir prácticamente hola mi nombre es y
196
+ vamos a hacer
197
+
198
+ 02:52.520 --> 02:55.960
199
+ referencia al nombre de nuestro objeto
200
+ persona.
201
+
202
+ 02:55.960 --> 02:59.360
203
+ Para poder utilizar esta propiedad como
204
+ variable,
205
+
206
+ 02:59.360 --> 03:02.360
207
+ porque hay un valor aquí, tenemos que
208
+ utilizar estas
209
+
210
+ 03:02.360 --> 03:05.120
211
+ comillas.
212
+
213
+ 03:05.120 --> 03:12.720
214
+ Y con esto le ponemos hola, mi nombre es,
215
+ ponemos pesitos,
216
+
217
+ 03:12.720 --> 03:20.520
218
+ y persona.nombre, porque estamos mandando
219
+ llamar el valor de la
220
+
221
+ 03:20.520 --> 03:23.640
222
+ propiedad de nombre que le pertenece al
223
+ objeto de
224
+
225
+ 03:23.640 --> 03:24.520
226
+ persona.
227
+
228
+ 03:24.520 --> 03:28.760
229
+ Así que con esto aquí ya nosotros podemos
230
+ prácticamente
231
+
232
+ 03:28.760 --> 03:31.200
233
+ imprimir el
234
+ nombre.
235
+
236
+ 03:31.200 --> 03:33.760
237
+ Scope out de aquí, aquí no está marcando
238
+ aquí un error,
239
+
240
+ 03:33.760 --> 03:35.040
241
+ yo puse
242
+ nombre.
243
+
244
+ 03:35.040 --> 03:38.340
245
+ Pero si vemos el error, aquí nos dice que
246
+ no existe la
247
+
248
+ 03:38.340 --> 03:39.560
249
+ propiedad
250
+ nombre.
251
+
252
+ 03:39.560 --> 03:42.800
253
+ Entonces si venimos acá podemos ver que
254
+ aquí no se escribió
255
+
256
+ 03:42.800 --> 03:46.120
257
+ bien nombre, ya, el error no existe.
258
+
259
+ 03:46.120 --> 03:48.160
260
+ Entonces ponemos
261
+ coma.
262
+
263
+ 03:48.160 --> 03:51.440
264
+ Y si guardamos, perfecto, ya tenemos aquí
265
+ la estructura de
266
+
267
+ 03:51.440 --> 03:53.800
268
+ lo que sería nuestro objeto persona.
269
+
270
+ 03:53.800 --> 03:59.720
271
+ Vamos a imprimirla, console.log, y aquí
272
+ vamos a imprimir
273
+
274
+ 03:59.720 --> 04:02.400
275
+ persona.coma.
276
+
277
+ 04:02.400 --> 04:06.120
278
+ Si guardamos, podemos ver aquí que ya
279
+ tenemos la impresión de
280
+
281
+ 04:06.120 --> 04:09.640
282
+ nuestro objeto, donde tenemos el nombre,
283
+ tenemos la dirección,
284
+
285
+ 04:09.640 --> 04:12.320
286
+ que es un pequeño objeto, tenemos la edad,
287
+
288
+ 04:12.320 --> 04:15.560
289
+ y tenemos aquí nuestro método de saludar.
290
+
291
+ 04:15.560 --> 04:20.280
292
+ Ahora que tenemos nuestro objeto, vamos a
293
+ imprimirlo.
294
+
295
+ 04:20.280 --> 04:24.120
296
+ Ponemos persona y guardamos nuestro archivo.
297
+
298
+ 04:24.120 --> 04:27.040
299
+ Y con esto ya podemos ver aquí en terminal
300
+ que ya se imprime
301
+
302
+ 04:27.040 --> 04:28.000
303
+ nuestro
304
+ objeto.
305
+
306
+ 04:28.000 --> 04:31.000
307
+ Tenemos el nombre, tenemos la edad y
308
+ tenemos el objeto
309
+
310
+ 04:31.000 --> 04:34.080
311
+ anitado, que es la dirección, que viene
312
+ con calle y que viene
313
+
314
+ 04:34.080 --> 04:35.080
315
+ con
316
+ ciudad.
317
+
318
+ 04:35.080 --> 04:36.840
319
+ De igual forma, tenemos aquí el método,
320
+
321
+ 04:36.840 --> 04:39.600
322
+ que para poder entonces ver el método,
323
+ imprimirlo,
324
+
325
+ 04:39.600 --> 04:45.520
326
+ simplemente vamos a llamar nuestro objeto
327
+ persona.saludar.
328
+
329
+ 04:45.520 --> 04:48.240
330
+ Y como es una función, la cerramos con esto.
331
+
332
+ 04:48.240 --> 04:49.520
333
+ Y
334
+ guardamos.
335
+
336
+ 04:49.520 --> 04:51.680
337
+ Y tenemos aquí un error que nos dice,
338
+
339
+ 04:51.680 --> 04:58.080
340
+ la referencia del error es log is not
341
+ defined en la línea 24.
342
+
343
+ 04:58.080 --> 05:00.600
344
+ Si venimos aquí, podemos ver que la línea 24,
345
+
346
+ 05:00.600 --> 05:03.800
347
+ tenemos nuestro console, coma y un espacio.
348
+
349
+ 05:03.800 --> 05:05.120
350
+ Evidentemente, esto no está
351
+ bien.
352
+
353
+ 05:05.120 --> 05:06.600
354
+ Ponemos el punto,
355
+ log.
356
+
357
+ 05:06.600 --> 05:09.440
358
+ Entonces, si guardamos, ya tenemos nuestro
359
+ objeto.
360
+
361
+ 05:09.440 --> 05:14.200
362
+ Y ya tenemos aquí entonces nuestro método
363
+ que dice, hola,
364
+
365
+ 05:14.200 --> 05:18.740
366
+ mi nombre es John, que hace referencia al
367
+ nombre de la
368
+
369
+ 05:18.740 --> 05:23.200
370
+ propiedad de nuestro objeto,
371
+ John.
372
+
373
+ 05:23.200 --> 05:25.280
374
+ Ahora lo que vamos a hacer es un perfecto.
375
+
376
+ 05:25.280 --> 05:27.640
377
+ ¿Qué pasa si ya tengo este objeto
378
+ creado?
379
+
380
+ 05:27.640 --> 05:30.440
381
+ Pero en el camino me doy cuenta que
382
+ necesito agregar o nuevas
383
+
384
+ 05:30.440 --> 05:32.920
385
+ propiedades o nuevos
386
+ métodos.
387
+
388
+ 05:32.920 --> 05:36.560
389
+ Entonces, para poderlo hacer es tan
390
+ sencillo como venir,
391
+
392
+ 05:36.560 --> 05:41.480
393
+ tomar nuestro objeto persona y poder punto
394
+ y agregarle la nueva
395
+
396
+ 05:41.480 --> 05:45.360
397
+ propiedad, que en este caso va a ser teléfono.
398
+
399
+ 05:45.360 --> 05:49.000
400
+ Y el teléfono va a ser igual a, y aquí es
401
+ donde vamos a poner
402
+
403
+ 05:49.000 --> 05:50.760
404
+ la información que estamos requiriendo,
405
+ que en este caso
406
+
407
+ 05:50.760 --> 05:57.280
408
+ va a ser 555, 555, 555,
409
+ 5.
410
+
411
+ 05:57.280 --> 05:57.840
412
+ Perfecto.
413
+
414
+ 05:57.840 --> 06:00.240
415
+ Y cerramos con punto y
416
+ coma.
417
+
418
+ 06:00.240 --> 06:06.400
419
+ Para poder asegurarnos que esto se guarde,
420
+ console.log.
421
+
422
+ 06:06.400 --> 06:12.920
423
+ Entonces, aquí mandamos llamar persona.
424
+ teléfono.coma.
425
+
426
+ 06:12.920 --> 06:14.720
427
+ Guardamos.
428
+
429
+ 06:14.720 --> 06:17.360
430
+ Y podemos ver aquí que ya se imprime
431
+ automáticamente nuestro
432
+
433
+ 06:17.360 --> 06:18.280
434
+ teléfono.
435
+
436
+ 06:18.280 --> 06:21.200
437
+ Si venimos acá y abrimos nuestro objeto,
438
+
439
+ 06:21.200 --> 06:24.120
440
+ vemos que ya se está agregando esta propiedad.
441
+
442
+ 06:24.120 --> 06:25.960
443
+ Ahora, esto es para agregar propiedades.
444
+
445
+ 06:25.960 --> 06:29.000
446
+ Pero si yo quiero agregar un nuevo método,
447
+
448
+ 06:29.000 --> 06:30.520
449
+ lo vamos a hacer de esta
450
+ forma.
451
+
452
+ 06:30.520 --> 06:34.400
453
+ Llegamos aquí, de igual forma, tomamos
454
+ nuestro objeto persona
455
+
456
+ 06:34.400 --> 06:38.800
457
+ punto y agregamos la propiedad como si
458
+ fuera una función.
459
+
460
+ 06:38.800 --> 06:42.760
461
+ Despedir, que va a ser igual a una función
462
+ anónima.
463
+
464
+ 06:42.760 --> 06:46.760
465
+ Y esta función, esta arrow function, más bien.
466
+
467
+ 06:46.760 --> 06:47.680
468
+ Tenemos
469
+ esto.
470
+
471
+ 06:47.680 --> 06:50.640
472
+ Y aquí vamos a agregar lo que estamos
473
+ buscando.
474
+
475
+ 06:50.640 --> 06:52.600
476
+ Console.log.
477
+
478
+ 06:52.600 --> 06:59.200
479
+ Y lo que vamos a poner aquí va a ser un adiós.
480
+
481
+ 07:02.720 --> 07:05.360
482
+ Vamos a guardar nuestro
483
+ objeto.
484
+
485
+ 07:05.360 --> 07:09.600
486
+ Y ahora, como lo hicimos en la parte de
487
+ acá con este método,
488
+
489
+ 07:09.600 --> 07:11.080
490
+ en vez de utilizar un
491
+ console.log,
492
+
493
+ 07:11.080 --> 07:15.440
494
+ simplemente vamos a poner persona punto
495
+ despedir.
496
+
497
+ 07:20.840 --> 07:21.940
498
+ Guardamos.
499
+
500
+ 07:21.940 --> 07:25.600
501
+ Y tenemos ya aquí nuestra función que
502
+ estamos agregando.
503
+
504
+ 07:25.600 --> 07:27.920
505
+ Nuestro nuevo método que se está agregando
506
+ si abrimos nuestro
507
+
508
+ 07:27.920 --> 07:28.440
509
+ objeto.
510
+
511
+ 07:28.440 --> 07:32.280
512
+ Podemos ver ahora que tenemos el despedir
513
+ y que tenemos el
514
+
515
+ 07:32.280 --> 07:35.760
516
+ saludar, que se están agregando de forma
517
+ independiente a
518
+
519
+ 07:35.760 --> 07:39.160
520
+ nuestro objeto una vez que el objeto ya
521
+ fue creado.
522
+
523
+ 07:39.160 --> 07:41.320
524
+ Ahora, tú te puedes preguntar, como perfecto,
525
+ Diego,
526
+
527
+ 07:41.320 --> 07:43.480
528
+ ya sé cómo generar un
529
+ objeto.
530
+
531
+ 07:43.480 --> 07:45.880
532
+ Ahora ya sé una vez que el objeto fue creado,
533
+
534
+ 07:45.880 --> 07:48.280
535
+ si tengo que agregar ciertas propiedades o
536
+ tengo que agregar
537
+
538
+ 07:48.280 --> 07:50.520
539
+ ciertos métodos, cómo
540
+ hacerlo.
541
+
542
+ 07:50.520 --> 07:52.600
543
+ Pero, ¿qué pasa si de repente ya no tengo
544
+ que agregar,
545
+
546
+ 07:52.600 --> 07:55.400
547
+ sino más bien tengo que borrar propiedades
548
+ y métodos?
549
+
550
+ 07:55.400 --> 07:58.360
551
+ La forma de poder borrar propiedades y
552
+ métodos es
553
+
554
+ 07:58.360 --> 08:01.240
555
+ llegamos y vamos a utilizar una palabra
556
+ reservada que se llama
557
+
558
+ 08:01.240 --> 08:02.400
559
+ deletes.
560
+
561
+ 08:02.400 --> 08:06.280
562
+ Vamos a mandar llamar nuestro objeto con
563
+ el punto y vamos
564
+
565
+ 08:06.280 --> 08:10.040
566
+ a mandar llamar la propiedad que
567
+ necesitamos borrar.
568
+
569
+ 08:10.040 --> 08:12.920
570
+ Teléfono.
571
+
572
+ 08:12.920 --> 08:17.760
573
+ Si guardamos, en este momento, si yo vengo
574
+ aquí y abro,
575
+
576
+ 08:17.760 --> 08:20.280
577
+ nos vamos a dar cuenta que ya no tengo
578
+ nuestra propiedad de
579
+
580
+ 08:20.280 --> 08:21.360
581
+ teléfono en este
582
+ momento.
583
+
584
+ 08:21.360 --> 08:24.480
585
+ Ya no tiene caso que yo utilice un control
586
+ log para poder verlo.
587
+
588
+ 08:24.480 --> 08:27.480
589
+ Yo ya tengo aquí, como al inicio estoy
590
+ mandando llamar este
591
+
592
+ 08:27.480 --> 08:30.720
593
+ objeto, puedo ver que la propiedad ya no
594
+ existe.
595
+
596
+ 08:30.720 --> 08:33.560
597
+ Si queremos borrar ahora un método, va a
598
+ ser lo mismo.
599
+
600
+ 08:33.560 --> 08:37.760
601
+ Vamos a utilizar deletes punto, más bien,
602
+
603
+ 08:37.760 --> 08:43.960
604
+ deletes espacio persona punto y la
605
+ propiedad que quiero borrar
606
+
607
+ 08:43.960 --> 08:45.800
608
+ es
609
+ pedir.
610
+
611
+ 08:45.800 --> 08:46.920
612
+ Punto y
613
+ coma.
614
+
615
+ 08:46.920 --> 08:49.280
616
+ Si guardo nuestro código y venimos aquí,
617
+
618
+ 08:49.280 --> 08:51.560
619
+ que está imprimiendo también el código,
620
+
621
+ 08:51.560 --> 08:55.600
622
+ podemos ver que tampoco ya existe el
623
+ método de despedir,
624
+
625
+ 08:55.600 --> 08:58.800
626
+ solo existe el método de saludar y existen
627
+ los parámetros que
628
+
629
+ 08:58.800 --> 09:01.240
630
+ utilizamos al momento de que creamos
631
+ nuestro objeto,
632
+
633
+ 09:01.240 --> 09:03.760
634
+ que viene la dirección, que es un objeto
635
+ anidado,
636
+
637
+ 09:03.760 --> 09:20.800
638
+ viene la edad y viene el
639
+ nombre.
640
+
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/02-index_1e469f9b-6fdc-4de4-9e66-cba3a484b09b.js ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+
3
+ estructura de datos
4
+
5
+ key / value
6
+
7
+ objeto {
8
+ propiedad: valor,
9
+ propiedad: valor,
10
+ propiedad: valor
11
+ Metodos()
12
+ }
13
+
14
+ */
15
+
16
+ const persona = {
17
+ nombre: "John",
18
+ edad: 30,
19
+ direccion: {
20
+ calle: "Av Insurgentre 187",
21
+ ciudad: "CDMX",
22
+ },
23
+ saludar() {
24
+ console.log(`hola, mi nombre es ${persona.nombre}`);
25
+ },
26
+ };
27
+
28
+ // Imprimamos el objeto
29
+
30
+ console.log(persona);
31
+
32
+ // Imprimamos la propiedad nombre
33
+
34
+ console.log(persona.nombre);
35
+
36
+ // Imprimamos el metodo saludar
37
+
38
+ persona.saludar();
39
+
40
+ //
41
+ //
42
+ //
43
+ //
44
+ //
45
+ // Agrergamos una propiedad al objeto en este caso telefono
46
+
47
+ persona.telefono = "555-555-5555";
48
+
49
+ console.log(persona.telefono);
50
+
51
+ // Agregamos un metodo al objeto
52
+
53
+ persona.despedir = () => {
54
+ console.log("Adios");
55
+ };
56
+
57
+ persona.despedir();
58
+
59
+ // Acceder a una propiedad de un objeto anidado / Metodo
60
+
61
+ console.log(persona.direccion.calle);
62
+
63
+ //
64
+ //
65
+ //
66
+ //
67
+ //
68
+ //
69
+ // Eliminar una propiedad de un objeto
70
+
71
+ delete persona.telefono;
72
+
73
+ console.log(persona.telefono);
74
+
75
+ // Eliminar un metodo de un objeto
76
+
77
+ delete persona.despedir;
78
+
79
+ console.log(persona.despedir());
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/03-Función constructora y gestión de instancias en JavaScript.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7f84ee392c6ec6b1d4c2a52767b3d6365cf5d80ecaf63089112c46e2efc20381
3
+ size 128896729
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/03-Función constructora y gestión de instancias en JavaScript.vtt ADDED
@@ -0,0 +1,873 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:04.120
4
+ Como ya vimos, al momento de trabajar objetos,
5
+ por ejemplo,
6
+
7
+ 00:04.120 --> 00:11.320
8
+ el objeto persona, construimos uno que se
9
+ llama persona,
10
+
11
+ 00:11.320 --> 00:13.640
12
+ que va a ser igual a la estructura a la
13
+ cual ya estamos
14
+
15
+ 00:13.640 --> 00:15.120
16
+ familiarizado.
17
+
18
+ 00:15.120 --> 00:19.280
19
+ Tenemos el nombre igual a
20
+ Diego.
21
+
22
+ 00:19.280 --> 00:20.120
23
+ Todo esto
24
+ funciona.
25
+
26
+ 00:20.120 --> 00:26.400
27
+ Tenemos apellido igual a de
28
+ granda.
29
+
30
+ 00:26.400 --> 00:28.600
31
+ Y podremos tener más
32
+ propiedades.
33
+
34
+ 00:28.600 --> 00:32.160
35
+ Pero, ¿qué pasa si, por ejemplo, ahorita
36
+ ya tenemos un objeto y
37
+
38
+ 00:32.160 --> 00:36.400
39
+ nosotros necesitamos construir de este
40
+ objeto 500 personas?
41
+
42
+ 00:36.400 --> 00:37.820
43
+ ¿Qué es lo que tendrías que
44
+ hacer?
45
+
46
+ 00:37.820 --> 00:40.280
47
+ ¿Tendrías que copiar y pegar este código
48
+ 500 veces para
49
+
50
+ 00:40.280 --> 00:42.240
51
+ poderlo hacer nada más de que cambias el
52
+ nombre?
53
+
54
+ 00:42.240 --> 00:43.280
55
+ Esto no es
56
+ funcional.
57
+
58
+ 00:43.280 --> 00:44.880
59
+ Esto no es
60
+ escalable.
61
+
62
+ 00:44.880 --> 00:48.920
63
+ Para poder asegurarnos de que nosotros
64
+ tengamos o podamos
65
+
66
+ 00:48.920 --> 00:52.920
67
+ construir la cantidad de objetos que
68
+ necesitemos sin tener que
69
+
70
+ 00:52.920 --> 00:56.080
71
+ estar copiando, pegando y asegurarnos
72
+ cambiar el nombre,
73
+
74
+ 00:56.080 --> 00:58.740
75
+ tenemos que utilizar una función que se
76
+ llama función
77
+
78
+ 00:58.740 --> 01:01.840
79
+ constructora, que el único objetivo que
80
+ tiene es poder
81
+
82
+ 01:01.840 --> 01:03.320
83
+ construir
84
+ objetos.
85
+
86
+ 01:03.320 --> 01:07.080
87
+ Y para esto, como ya te comenté, esto es
88
+ una función.
89
+
90
+ 01:07.080 --> 01:09.960
91
+ Y esta función va a tener la misma
92
+ estructura de las
93
+
94
+ 01:09.960 --> 01:12.040
95
+ funciones de las cuales ya estamos
96
+ familiarizados,
97
+
98
+ 01:12.040 --> 01:15.560
99
+ nada más que el nombre de la función va a
100
+ ser el nombre de
101
+
102
+ 01:15.560 --> 01:17.880
103
+ nuestro objeto que tiene que construir.
104
+
105
+ 01:17.880 --> 01:22.120
106
+ En este caso, va a tener una peculiaridad
107
+ que va a iniciar
108
+
109
+ 01:22.120 --> 01:25.880
110
+ con mayúscula esa
111
+ función.
112
+
113
+ 01:25.880 --> 01:27.800
114
+ Sería en este queremos construir, por ejemplo,
115
+
116
+ 01:27.800 --> 01:29.360
117
+ personas.
118
+
119
+ 01:29.360 --> 01:32.600
120
+ Entonces, nuestra función constructora va
121
+ a iniciar con
122
+
123
+ 01:32.600 --> 01:36.400
124
+ function mayúscula
125
+ persona.
126
+
127
+ 01:36.400 --> 01:39.680
128
+ Y aquí continuamos como si estuviéramos
129
+ haciendo una
130
+
131
+ 01:39.680 --> 01:43.800
132
+ función en el cual tenemos los paréntesis
133
+ y tenemos nuestros
134
+
135
+ 01:43.800 --> 01:44.400
136
+ corchetes.
137
+
138
+ 01:44.400 --> 01:47.920
139
+ Y adentro de los paréntesis vamos a
140
+ agregar estas
141
+
142
+ 01:47.920 --> 01:49.600
143
+ propiedades que
144
+ necesitamos.
145
+
146
+ 01:49.600 --> 01:51.400
147
+ Porque cuando vamos a hacer la función,
148
+
149
+ 01:51.400 --> 01:54.440
150
+ pues tenemos que agregarle las propiedades
151
+ para que entonces
152
+
153
+ 01:54.440 --> 01:57.200
154
+ la función pueda construir nuestro objeto.
155
+
156
+ 01:57.200 --> 02:01.000
157
+ Entonces, aquí necesitamos, por ejemplo,
158
+ el nombre.
159
+
160
+ 02:01.000 --> 02:03.800
161
+ Necesitamos el
162
+ apellido.
163
+
164
+ 02:03.800 --> 02:06.880
165
+ Y necesitamos, vamos a ponerle una edad
166
+ para poder construir
167
+
168
+ 02:06.880 --> 02:08.920
169
+ nuestra
170
+ persona.
171
+
172
+ 02:08.920 --> 02:13.360
173
+ Entonces, tenemos una función que tiene el
174
+ nombre del objeto
175
+
176
+ 02:13.360 --> 02:16.440
177
+ que queremos empezar a construir de forma
178
+ mucho más masiva,
179
+
180
+ 02:16.440 --> 02:18.440
181
+ que tiene que iniciar con mayúscula.
182
+
183
+ 02:18.440 --> 02:22.600
184
+ Y aquí vamos a pasarle como parámetros las
185
+ propiedades que
186
+
187
+ 02:22.600 --> 02:24.120
188
+ van a construir ese
189
+ objeto.
190
+
191
+ 02:24.120 --> 02:28.040
192
+ Entonces, si venimos aquí, vamos a poner
193
+ una estructura
194
+
195
+ 02:28.040 --> 02:30.680
196
+ similar donde tendríamos el
197
+ nombre.
198
+
199
+ 02:30.680 --> 02:32.400
200
+ Y el nombre sería
201
+ igual.
202
+
203
+ 02:32.400 --> 02:36.480
204
+ Esa es una función, recuerdan, no es
205
+ similar a la forma en la
206
+
207
+ 02:36.480 --> 02:39.920
208
+ que construimos un objeto, sino esto va a
209
+ construir estos
210
+
211
+ 02:39.920 --> 02:40.880
212
+ objetos.
213
+
214
+ 02:40.880 --> 02:44.480
215
+ Así que ponemos nombre igual a nombre,
216
+
217
+ 02:44.480 --> 02:47.880
218
+ que va a ser referente a este parámetro
219
+ que estamos nosotros
220
+
221
+ 02:47.880 --> 02:49.560
222
+ utilizando, punto y
223
+ coma.
224
+
225
+ 02:49.560 --> 02:54.100
226
+ Pero aquí tenemos una peculiaridad que
227
+ tendremos que
228
+
229
+ 02:54.100 --> 02:58.840
230
+ iniciar con el this, punto, porque el this
231
+ hace referencia
232
+
233
+ 02:58.840 --> 03:01.040
234
+ a este
235
+ objeto.
236
+
237
+ 03:01.040 --> 03:04.920
238
+ Entonces, ponemos este objeto, el nombre
239
+ de este objeto va a
240
+
241
+ 03:04.920 --> 03:08.360
242
+ ser igual al nombre que nos pasen como
243
+ parámetro.
244
+
245
+ 03:08.360 --> 03:10.320
246
+ Y con eso terminamos la
247
+ estructura.
248
+
249
+ 03:10.320 --> 03:11.400
250
+ Vamos en el
251
+ otro.
252
+
253
+ 03:11.400 --> 03:17.000
254
+ Sería this, punto, apellido, igual a apellido,
255
+
256
+ 03:17.000 --> 03:20.240
257
+ que hace referencia al parámetro que nos
258
+ van a pasar.
259
+
260
+ 03:20.240 --> 03:27.680
261
+ Y terminamos con this, punto,
262
+ edad,
263
+
264
+ 03:27.680 --> 03:30.360
265
+ que va a ser igual a edad como el
266
+ parámetro que nos va a
267
+
268
+ 03:30.360 --> 03:31.280
269
+ pasar.
270
+
271
+ 03:31.280 --> 03:34.860
272
+ Entonces, esta es la estructura de cómo
273
+ construimos una función
274
+
275
+ 03:34.860 --> 03:35.960
276
+ constructora.
277
+
278
+ 03:35.960 --> 03:39.680
279
+ Si nosotros queremos ahora empezar a
280
+ construir objetos
281
+
282
+ 03:39.680 --> 03:42.800
283
+ utilizando esta función, la forma de
284
+ hacerlo sería la
285
+
286
+ 03:42.800 --> 03:44.060
287
+ siguiente.
288
+
289
+ 03:44.060 --> 03:45.860
290
+ Tenemos que generar una
291
+ instancia.
292
+
293
+ 03:45.860 --> 03:49.800
294
+ Así se le llama a todos los objetos que
295
+ vengan de esta
296
+
297
+ 03:49.800 --> 03:52.480
298
+ función constructora, se van a llamar
299
+ instancias.
300
+
301
+ 03:52.480 --> 03:55.380
302
+ Y la forma de hacerlo es, empezamos con un
303
+ const,
304
+
305
+ 03:55.380 --> 03:58.740
306
+ que va a ser persona1, por
307
+ ejemplo.
308
+
309
+ 03:58.740 --> 04:01.400
310
+ Y esto vamos a utilizar una palabra
311
+ reservada que se llama
312
+
313
+ 04:01.400 --> 04:02.420
314
+ new.
315
+
316
+ 04:02.420 --> 04:05.280
317
+ Y después mandamos llamar nuestra función
318
+ constructora
319
+
320
+ 04:05.280 --> 04:07.240
321
+ con los parámetros que nos interesan.
322
+
323
+ 04:07.240 --> 04:10.520
324
+ Entonces, nuestra primera persona se va a
325
+ llamar Juan,
326
+
327
+ 04:10.520 --> 04:15.800
328
+ coma, su apellido va a ser Pérez, coma,
329
+
330
+ 04:15.800 --> 04:19.400
331
+ y su edad va a ser 30 años, punto y coma,
332
+
333
+ 04:19.400 --> 04:22.840
334
+ para poder ver que esta persona se generó
335
+ o se creó de forma
336
+
337
+ 04:22.840 --> 04:25.760
338
+ correcta con su punto
339
+ log.
340
+
341
+ 04:25.760 --> 04:30.880
342
+ Entonces, aquí vamos a mandar llamar persona1,
343
+ punto y coma.
344
+
345
+ 04:30.880 --> 04:33.440
346
+ Ahora, si guardamos nuestro
347
+ código,
348
+
349
+ 04:33.440 --> 04:36.000
350
+ podemos ver que aquí ya no está regresando.
351
+
352
+ 04:36.000 --> 04:39.120
353
+ Hay una función, o más bien hay un objeto
354
+ que se llama persona.
355
+
356
+ 04:39.120 --> 04:42.800
357
+ Pero si lo abrimos, podemos ver que este
358
+ objeto persona se
359
+
360
+ 04:42.800 --> 04:44.920
361
+ llama Juan, con el apellido
362
+ Pérez,
363
+
364
+ 04:44.920 --> 04:47.600
365
+ y tiene la edad de 30
366
+ años.
367
+
368
+ 04:47.600 --> 04:48.240
369
+ Perfecto.
370
+
371
+ 04:48.240 --> 04:50.560
372
+ Ahora, sabemos que ya podemos generar
373
+ instancias.
374
+
375
+ 04:50.560 --> 04:53.640
376
+ Pero entonces, ¿cuál es el beneficio de
377
+ hacerlo así?
378
+
379
+ 04:53.640 --> 04:54.960
380
+ A hacerlo así,
381
+ ¿no?
382
+
383
+ 04:54.960 --> 04:56.080
384
+ Como copiar y
385
+ pegar.
386
+
387
+ 04:56.080 --> 04:58.560
388
+ Bueno, el beneficio es que la siguiente
389
+ vez que yo quisiera
390
+
391
+ 04:58.560 --> 05:02.880
392
+ tener otra persona nueva, va a ser una
393
+ constancia.
394
+
395
+ 05:02.880 --> 05:05.160
396
+ Esta persona va a ser
397
+ persona2.
398
+
399
+ 05:05.160 --> 05:07.720
400
+ Y vamos a copiar la misma estructura con
401
+ la reservada
402
+
403
+ 05:07.720 --> 05:10.520
404
+ new,
405
+ persona.
406
+
407
+ 05:10.520 --> 05:13.520
408
+ Y entonces, ahora, en vez de generar esta
409
+ estructura o
410
+
411
+ 05:13.520 --> 05:16.720
412
+ esta estructura, simplemente mandamos
413
+ llamar nuestra función
414
+
415
+ 05:16.720 --> 05:19.200
416
+ constructora y solo le pasamos los
417
+ parámetros que nos
418
+
419
+ 05:19.200 --> 05:22.120
420
+ interesan para esta nueva
421
+ persona.
422
+
423
+ 05:22.120 --> 05:28.760
424
+ Va a ser Diego, coma, su apellido va a ser
425
+ de granda,
426
+
427
+ 05:28.760 --> 05:32.200
428
+ y entonces su edad va a ser 35 años.
429
+
430
+ 05:32.200 --> 05:34.680
431
+ Lo
432
+ tenemos.
433
+
434
+ 05:34.680 --> 05:36.080
435
+ Console.log.
436
+
437
+ 05:36.080 --> 05:40.800
438
+ Y entonces aquí, persona2, punto y coma.
439
+
440
+ 05:40.800 --> 05:44.280
441
+ Imprimimos y podemos ver que ahora
442
+ entonces ya tenemos dos
443
+
444
+ 05:44.280 --> 05:47.640
445
+ objetos, uno de nombre Juan, otro de
446
+ nombre Diego.
447
+
448
+ 05:47.640 --> 05:50.840
449
+ Y así podemos empezar a generar las
450
+ personas que nosotros
451
+
452
+ 05:50.840 --> 05:51.880
453
+ necesitemos.
454
+
455
+ 05:51.880 --> 05:55.160
456
+ E incluso podíamos hacer una función que
457
+ pueda automatizar
458
+
459
+ 05:55.160 --> 05:58.320
460
+ este proceso para que solo le pasemos los
461
+ parámetros que nos
462
+
463
+ 05:58.320 --> 06:01.120
464
+ interesan, inyectarle los parámetros que
465
+ nos interesan y
466
+
467
+ 06:01.120 --> 06:03.960
468
+ que nos vaya formando tantas personas
469
+ tenga nuestro
470
+
471
+ 06:03.960 --> 06:04.720
472
+ documento.
473
+
474
+ 06:04.720 --> 06:08.360
475
+ Entonces, ahora ya sabemos cómo nosotros
476
+ generamos una función
477
+
478
+ 06:08.360 --> 06:13.000
479
+ constructora y cómo podemos generar las
480
+ instancias.
481
+
482
+ 06:13.000 --> 06:15.880
483
+ Y si tu pregunta es, oye, Diego, ahora que
484
+ ya sé cómo generar
485
+
486
+ 06:15.880 --> 06:19.520
487
+ esta función constructora, ¿qué pasa si
488
+ tengo que generar una
489
+
490
+ 06:19.520 --> 06:21.080
491
+ propiedad
492
+ después?
493
+
494
+ 06:21.080 --> 06:23.160
495
+ En el camino me doy cuenta que no solo
496
+ quiero edad,
497
+
498
+ 06:23.160 --> 06:26.160
499
+ sino que también quiero el género o
500
+ incluso quiero su
501
+
502
+ 06:26.160 --> 06:27.640
503
+ dirección.
504
+
505
+ 06:27.640 --> 06:30.160
506
+ ¿Podrías venir directamente aquí a la
507
+ función constructora y
508
+
509
+ 06:30.160 --> 06:32.520
510
+ agregar esa nueva propiedad como
511
+ dis?
512
+
513
+ 06:32.520 --> 06:35.720
514
+ Entonces, asegurarte que aquí en el
515
+ momento de estar como
516
+
517
+ 06:35.720 --> 06:39.880
518
+ construyendo esa instancia, puedas poner
519
+ esa información.
520
+
521
+ 06:39.880 --> 06:43.480
522
+ O lo que puedes hacer es utilizar el
523
+ prototype,
524
+
525
+ 06:43.480 --> 06:49.080
526
+ puedes generar o agregar una propiedad al
527
+ prototype de
528
+
529
+ 06:49.080 --> 06:49.760
530
+ persona.
531
+
532
+ 06:49.760 --> 06:51.560
533
+ Y ahorita vamos a ver qué significa eso.
534
+
535
+ 06:51.560 --> 06:53.760
536
+ La forma de hacerlo es, mandamos llamar
537
+ nuestra función
538
+
539
+ 06:53.760 --> 06:57.800
540
+ constructora, punto, prototype, punto,
541
+
542
+ 06:57.800 --> 06:59.120
543
+ la propiedad que quiero
544
+ agregar.
545
+
546
+ 06:59.120 --> 07:02.800
547
+ Que en este caso sería
548
+ teléfono.
549
+
550
+ 07:02.800 --> 07:04.960
551
+ Y aquí vamos a poner un teléfono por default,
552
+
553
+ 07:04.960 --> 07:11.560
554
+ que sería
555
+ 555-555-5555.
556
+
557
+ 07:11.560 --> 07:14.080
558
+ Entonces, al momento de poner punto y coma
559
+ y guardar,
560
+
561
+ 07:14.080 --> 07:16.280
562
+ puedo ver que aquí está imprimiendo mis
563
+ dos objetos que
564
+
565
+ 07:16.280 --> 07:18.760
566
+ ya he generado, que son mis dos instancias.
567
+
568
+ 07:18.760 --> 07:21.440
569
+ Al momento de abrir, puedo ver que, bueno,
570
+
571
+ 07:21.440 --> 07:24.480
572
+ aquí no existe la propiedad que yo acabo
573
+ de generar.
574
+
575
+ 07:24.480 --> 07:28.080
576
+ El problema es que, o el punto, es que
577
+ esta propiedad no se
578
+
579
+ 07:28.080 --> 07:31.240
580
+ agrega directamente en la función
581
+ constructora,
582
+
583
+ 07:31.240 --> 07:33.960
584
+ sino se está agregando al prototipo de la
585
+ función
586
+
587
+ 07:33.960 --> 07:34.640
588
+ constructora.
589
+
590
+ 07:34.640 --> 07:36.120
591
+ Aquí tenemos
592
+ prototype.
593
+
594
+ 07:36.120 --> 07:39.560
595
+ Y si lo abrimos, podemos ver que aquí está
596
+ la propiedad que
597
+
598
+ 07:39.560 --> 07:40.240
599
+ estoy
600
+ agregando.
601
+
602
+ 07:40.240 --> 07:41.000
603
+ ¿Por
604
+ qué?
605
+
606
+ 07:41.000 --> 07:44.080
607
+ Porque recordemos que el prototipo es la
608
+ copia de la
609
+
610
+ 07:44.080 --> 07:47.720
611
+ función constructora que se encarga de
612
+ compartir cada una de
613
+
614
+ 07:47.720 --> 07:51.280
615
+ las propiedades o métodos que existen en
616
+ mi función.
617
+
618
+ 07:51.280 --> 07:54.280
619
+ Así que si yo tengo que agregar una nueva
620
+ propiedad o un nuevo
621
+
622
+ 07:54.280 --> 07:57.900
623
+ método, lo voy a hacer de esta forma para
624
+ asegurarme que el
625
+
626
+ 07:57.900 --> 08:00.880
627
+ prototipo también tenga esta información
628
+ que estoy
629
+
630
+ 08:00.880 --> 08:04.040
631
+ añadiendo y se pueda empezar a compartir
632
+ en las siguientes
633
+
634
+ 08:04.040 --> 08:05.240
635
+ instancias.
636
+
637
+ 08:05.240 --> 08:07.440
638
+ No va a venir directamente desde el
639
+ constructor,
640
+
641
+ 08:07.440 --> 08:10.200
642
+ pero sí se va a compartir desde el prototype.
643
+
644
+ 08:10.200 --> 08:13.000
645
+ Pero ahora, ¿qué pasa si yo solo quiero
646
+ agregar una nueva
647
+
648
+ 08:13.000 --> 08:17.160
649
+ propiedad a una instancia en particular
650
+ que yo ya generé y
651
+
652
+ 08:17.160 --> 08:19.400
653
+ no necesito que se comparte entre todas
654
+ las demás
655
+
656
+ 08:19.400 --> 08:20.520
657
+ instancias?
658
+
659
+ 08:20.520 --> 08:23.480
660
+ Entonces, la forma de hacerlo, ya lo
661
+ sabemos hacer, sería,
662
+
663
+ 08:23.480 --> 08:25.160
664
+ vamos a mandar llamar nuestra instancia,
665
+
666
+ 08:25.160 --> 08:31.320
667
+ va a ser persona1, punto, y va a tener una
668
+ nueva información
669
+
670
+ 08:31.320 --> 08:37.200
671
+ que va a ser nacion,
672
+ nacionalidad.
673
+
674
+ 08:37.200 --> 08:42.600
675
+ Y en este caso, para esta persona, sería
676
+ mexicano.
677
+
678
+ 08:45.240 --> 08:47.280
679
+ Vamos a
680
+ guardar.
681
+
682
+ 08:47.280 --> 08:51.960
683
+ Entonces, venimos aquí, tenemos, por ejemplo,
684
+ persona1.
685
+
686
+ 08:51.960 --> 08:53.600
687
+ Aquí es donde está
688
+ Juan.
689
+
690
+ 08:53.600 --> 08:56.720
691
+ Estamos agregando su nueva propiedad,
692
+ que es mexicano.
693
+
694
+ 08:56.720 --> 09:00.680
695
+ Venimos a persona2, Diego, y podemos ver
696
+ que no existe esta
697
+
698
+ 09:00.680 --> 09:05.160
699
+ propiedad en esta instancia, porque a esta
700
+ instancia no se
701
+
702
+ 09:05.160 --> 09:06.320
703
+ la
704
+ agregamos.
705
+
706
+ 09:06.320 --> 09:09.680
707
+ Pero si buscamos en prototipo, aquí sigue
708
+ estando teléfono y
709
+
710
+ 09:09.680 --> 09:11.360
711
+ aquí sigue estando
712
+ teléfono.
713
+
714
+ 09:11.360 --> 09:13.800
715
+ Y ahora, si lo que queremos agregar,
716
+ por ejemplo,
717
+
718
+ 09:13.800 --> 09:17.280
719
+ en la función constructora no es una
720
+ propiedad, sino un método,
721
+
722
+ 09:17.280 --> 09:19.680
723
+ podemos ver que esta función constructora,
724
+ nosotros,
725
+
726
+ 09:19.680 --> 09:22.360
727
+ no agregamos métodos, simplemente propiedades,
728
+
729
+ 09:22.360 --> 09:25.360
730
+ pues la forma de hacerlo de igual forma va
731
+ a ser con el
732
+
733
+ 09:25.360 --> 09:26.280
734
+ prototipo.
735
+
736
+ 09:26.280 --> 09:29.800
737
+ Entonces, llegamos, mandamos llamar
738
+ nuestra función
739
+
740
+ 09:29.800 --> 09:32.880
741
+ constructora de persona, utilizamos
742
+ nuestra palabra
743
+
744
+ 09:32.880 --> 09:35.280
745
+ reservada de prototype,
746
+ punto.
747
+
748
+ 09:35.280 --> 09:38.320
749
+ Y entonces, aquí vamos a construir una
750
+ función que se va
751
+
752
+ 09:38.320 --> 09:40.720
753
+ a convertir en el
754
+ método.
755
+
756
+ 09:40.720 --> 09:43.880
757
+ Saludar, que en este caso va a ser igual a
758
+ una función
759
+
760
+ 09:43.880 --> 09:44.380
761
+ anónima.
762
+
763
+ 09:47.440 --> 09:49.960
764
+ Y la estructura, esta ya la conocemos,
765
+
766
+ 09:49.960 --> 09:51.440
767
+ cómo hacer las funciones
768
+ anónimas,
769
+
770
+ 09:51.440 --> 09:53.240
771
+ cómo generar una
772
+ función.
773
+
774
+ 09:53.240 --> 09:58.240
775
+ Vamos a poner un
776
+ console.log.
777
+
778
+ 09:58.240 --> 10:00.920
779
+ Y aquí vamos a utilizar, por ejemplo,
780
+
781
+ 10:00.920 --> 10:05.080
782
+ el nombre de cada una de las instancias
783
+ que estamos creando
784
+
785
+ 10:05.080 --> 10:07.240
786
+ para que se imprima de forma independiente.
787
+
788
+ 10:07.240 --> 10:11.520
789
+ Y entonces, vamos a utilizar nuestras
790
+ comillas para poder
791
+
792
+ 10:11.520 --> 10:12.800
793
+ utilizar las
794
+ variables.
795
+
796
+ 10:12.800 --> 10:17.400
797
+ Y entonces, aquí ponemos, hola, coma,
798
+ me llamo.
799
+
800
+ 10:17.400 --> 10:21.200
801
+ Y entonces, vamos a poner
802
+ besitos,
803
+
804
+ 10:21.200 --> 10:23.080
805
+ vamos a poner nuestros
806
+ corchetes.
807
+
808
+ 10:23.080 --> 10:25.520
809
+ Y entonces, aquí vamos a utilizar el dis,
810
+
811
+ 10:25.520 --> 10:28.120
812
+ porque el dis, recordemos, que hace
813
+ referencia a la función
814
+
815
+ 10:28.120 --> 10:34.040
816
+ constructora misma para poder mandar
817
+ llamar el valor de la
818
+
819
+ 10:34.040 --> 10:36.160
820
+ variable que estamos buscando en este momento.
821
+
822
+ 10:36.160 --> 10:41.160
823
+ Entonces, sería
824
+ dis.nombre.
825
+
826
+ 10:41.160 --> 10:43.000
827
+ Y vamos a también agregarle el apellido.
828
+
829
+ 10:45.800 --> 10:51.480
830
+ Y sería
831
+ dis.apellido.
832
+
833
+ 10:51.480 --> 10:57.720
834
+ Entonces, si guardamos aquí, si venimos acá,
835
+
836
+ 10:57.720 --> 11:01.000
837
+ aquí de igual forma, pues no lo vamos a
838
+ ver visible en la
839
+
840
+ 11:01.000 --> 11:02.200
841
+ función
842
+ constructora.
843
+
844
+ 11:02.200 --> 11:05.600
845
+ Si abrimos el prototipo, podemos ver que
846
+ ya existe el método de
847
+
848
+ 11:05.600 --> 11:06.600
849
+ saludar.
850
+
851
+ 11:06.600 --> 11:10.040
852
+ Y la forma de ver si realmente lo tiene
853
+ cada una de nuestras
854
+
855
+ 11:10.040 --> 11:20.080
856
+ instancias, pues es un, vamos a mandar
857
+ llamar persona1.saludar.
858
+
859
+ 11:20.080 --> 11:23.520
860
+ Y
861
+ persona2.saludar.
862
+
863
+ 11:28.760 --> 11:32.440
864
+ Entonces, si guardamos aquí, podemos ver
865
+ que de persona1 es,
866
+
867
+ 11:32.440 --> 11:33.680
868
+ hola, me llamo Juan
869
+ Pérez.
870
+
871
+ 11:33.680 --> 11:50.720
872
+ Y persona2, hola, me llamo Diego de Granda.
873
+
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/03-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-Clases en JavaScript Creación y Uso de Objetos con Sintaxis Moderna.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:38b66525bce56af6eb79e35633e4355d8e1d6e83925fab4525181356bc0646b0
3
+ size 40687964
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-Clases en JavaScript Creación y Uso de Objetos con Sintaxis Moderna.vtt ADDED
@@ -0,0 +1,408 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:04.760
4
+ A partir de 2015, JavaScript presentó una
5
+ nueva forma de construir clases.
6
+
7
+ 00:04.760 --> 00:08.360
8
+ Y no es algo completamente nuevo o
9
+ diferente de la forma en la que conocemos,
10
+
11
+ 00:08.360 --> 00:10.120
12
+ que sería una función
13
+ constructora.
14
+
15
+ 00:10.120 --> 00:15.840
16
+ Simplemente es una forma que se asemeja
17
+ mucho a otros lenguajes de programación,
18
+
19
+ 00:15.840 --> 00:20.280
20
+ por ejemplo Java, que son lenguajes mucho
21
+ más orientados a objetos,
22
+
23
+ 00:20.280 --> 00:22.040
24
+ reales orientados a
25
+ objetos.
26
+
27
+ 00:22.040 --> 00:25.560
28
+ Podemos decir que una clase de esta nueva
29
+ estructura es un Sugar Syntax,
30
+
31
+ 00:25.560 --> 00:28.840
32
+ en lo que ya nosotros conocemos para poder
33
+ generar objetos.
34
+
35
+ 00:28.840 --> 00:30.680
36
+ Pero entonces, ¿qué es una
37
+ clase?
38
+
39
+ 00:30.680 --> 00:33.760
40
+ Una clase es como si tuviéramos un Blueprint,
41
+
42
+ 00:33.760 --> 00:38.640
43
+ que prácticamente es generar el molde del
44
+ cual se van a construir diferentes objetos.
45
+
46
+ 00:38.640 --> 00:42.720
47
+ Vamos a pasar entonces a nuestro editor de
48
+ texto.
49
+
50
+ 00:42.720 --> 00:45.800
51
+ Si estamos aquí, como te estaba comentando,
52
+
53
+ 00:45.800 --> 00:50.120
54
+ una clase es prácticamente como un molde
55
+ que nosotros vamos a construir
56
+
57
+ 00:50.120 --> 00:52.280
58
+ para poder crear nuevos
59
+ objetos.
60
+
61
+ 00:52.280 --> 00:55.800
62
+ Es como una función constructora, pero con
63
+ una sintaxis distinta.
64
+
65
+ 00:55.800 --> 01:00.080
66
+ Para poder comenzar con las clases,
67
+ nosotros vamos a utilizar una palabra reservada
68
+
69
+ 01:00.080 --> 01:02.320
70
+ que se llama
71
+ class.
72
+
73
+ 01:02.320 --> 01:06.000
74
+ Ahora esa es la palabra que utilizamos
75
+ para comenzar con las clases.
76
+
77
+ 01:06.000 --> 01:10.000
78
+ Y similar a como se utiliza, por ejemplo,
79
+ con una función constructora,
80
+
81
+ 01:10.000 --> 01:12.800
82
+ es el nombre de lo que va a ser nuestra clase.
83
+
84
+ 01:12.800 --> 01:18.360
85
+ Iniciamos con una letra en mayúscula.
86
+
87
+ 01:18.360 --> 01:22.800
88
+ Esta clase se va a llamar persona, porque
89
+ de aquí voy a construir más personas.
90
+
91
+ 01:22.800 --> 01:25.120
92
+ Y ponemos nuestros
93
+ corchetes.
94
+
95
+ 01:25.120 --> 01:28.200
96
+ Y ya que estamos acá, lo primero que
97
+ tenemos que hacer es
98
+
99
+ 01:28.200 --> 01:31.440
100
+ vamos a sacar un método, que es un método
101
+ constructor.
102
+
103
+ 01:31.440 --> 01:37.080
104
+ Que esto define cómo se deben configurar
105
+ las propiedades de este objeto.
106
+
107
+ 01:37.080 --> 01:42.200
108
+ De los objetos que vengan de esta clase,
109
+ este método constructor
110
+
111
+ 01:42.200 --> 01:46.760
112
+ va a definir cómo se deben de configurar
113
+ estas propiedades del objeto
114
+
115
+ 01:46.760 --> 01:50.040
116
+ y puede recibir argumentos para
117
+ personalizar la iniciación.
118
+
119
+ 01:50.040 --> 01:53.240
120
+ Quiere decir que, como es un método tipo
121
+ función,
122
+
123
+ 01:53.240 --> 01:59.000
124
+ aquí voy a poner los argumentos que
125
+ requiero para poder formar mi persona.
126
+
127
+ 01:59.000 --> 02:03.680
128
+ Que en este caso va a ser un nombre,
129
+ por ejemplo, y edad.
130
+
131
+ 02:03.680 --> 02:05.640
132
+ Aquí lo
133
+ tengo.
134
+
135
+ 02:05.640 --> 02:11.320
136
+ Entonces aquí voy a empezar a formar la
137
+ estructura de lo que va a generar mi
138
+
139
+ 02:11.320 --> 02:13.840
140
+ clase, de cómo se va a crear mi clase.
141
+
142
+ 02:13.840 --> 02:17.000
143
+ Y vamos a reutilizar esta palabra reservada,
144
+ this,
145
+
146
+ 02:17.000 --> 02:22.320
147
+ que como platicábamos, this es una palabra
148
+ reservada que hace referencia
149
+
150
+ 02:22.320 --> 02:23.840
151
+ a la misma
152
+ clase.
153
+
154
+ 02:23.840 --> 02:29.000
155
+ Entonces, en este caso es this.nombre,
156
+ como el nombre de esta clase,
157
+
158
+ 02:29.000 --> 02:33.480
159
+ en este caso es persona, va a ser igual a
160
+ el nombre que me pasen como
161
+
162
+ 02:33.480 --> 02:35.920
163
+ parámetro.
164
+
165
+ 02:35.920 --> 02:36.840
166
+ Perfecto.
167
+
168
+ 02:36.840 --> 02:37.800
169
+ Punto y
170
+ coma.
171
+
172
+ 02:37.800 --> 02:39.440
173
+ Y vamos a utilizar
174
+ edad.
175
+
176
+ 02:39.440 --> 02:43.320
177
+ this.edad, que es la edad de esta clase,
178
+
179
+ 02:43.320 --> 02:47.520
180
+ va a ser igual a edad que me pasen como
181
+ referencia una vez que yo genere
182
+
183
+ 02:47.520 --> 02:50.000
184
+ la nueva
185
+ instancia.
186
+
187
+ 02:50.000 --> 02:53.640
188
+ Porque vamos a utilizar al momento de
189
+ generar una nueva instancia,
190
+
191
+ 02:53.640 --> 02:57.120
192
+ vamos a hacerlo como si fuera una función
193
+ que recibe dos parámetros.
194
+
195
+ 02:57.120 --> 03:01.480
196
+ Y estos dos parámetros se van a convertir
197
+ en el valor de estas dos
198
+
199
+ 03:01.480 --> 03:04.760
200
+ propiedades de la clase que estoy
201
+ construyendo en este momento.
202
+
203
+ 03:04.760 --> 03:07.560
204
+ Y aquí, por ejemplo, si mi clase va a
205
+ llevar algún método,
206
+
207
+ 03:07.560 --> 03:11.400
208
+ recordemos que estas son propiedades,
209
+ pero también puede llevar métodos.
210
+
211
+ 03:11.400 --> 03:13.760
212
+ Vamos a poner
213
+ saludar.
214
+
215
+ 03:13.760 --> 03:17.640
216
+ Entonces el método es como una función
217
+ adentro de un objeto.
218
+
219
+ 03:17.640 --> 03:22.400
220
+ Y saludar lo que va a hacer es, nos va a
221
+ regresar un console.log,
222
+
223
+ 03:22.400 --> 03:30.000
224
+ que a su vez nos va a imprimir, por ejemplo,
225
+ un hola, mi nombre es,
226
+
227
+ 03:30.000 --> 03:39.160
228
+ y vamos a mandar llamar el valor de nombre,
229
+ de mi propiedad nombre,
230
+
231
+ 03:39.160 --> 03:40.160
232
+ que sería
233
+ this.nombre.
234
+
235
+ 03:40.160 --> 03:49.560
236
+ Y tengo nada más para, tengo un poco más
237
+ de información,
238
+
239
+ 03:49.560 --> 03:55.440
240
+ tengo this.edad,
241
+ años.
242
+
243
+ 03:55.440 --> 03:57.480
244
+ Listo con
245
+ eso.
246
+
247
+ 03:57.480 --> 04:00.600
248
+ Entonces ya que tenemos aquí, este es un
249
+ Blueprints.
250
+
251
+ 04:00.600 --> 04:02.520
252
+ Prácticamente eso nada más es un molde.
253
+
254
+ 04:02.520 --> 04:04.320
255
+ Ahorita no va a ser
256
+ nada.
257
+
258
+ 04:04.320 --> 04:10.760
259
+ Si yo mando llamar, por ejemplo, el método
260
+ de saludar de mi clase
261
+
262
+ 04:10.760 --> 04:13.880
263
+ persona, pues va a haber un onDefine
264
+ porque no tengo nada
265
+
266
+ 04:13.880 --> 04:16.920
267
+ definido, no hay valores aquí como definidos.
268
+
269
+ 04:16.920 --> 04:18.280
270
+ Ese simplemente es un
271
+ molde.
272
+
273
+ 04:18.280 --> 04:21.480
274
+ De aquí nosotros tenemos que empezar a
275
+ crear estas nuevas
276
+
277
+ 04:21.480 --> 04:24.040
278
+ instancias de personas que nos van a
279
+ ayudar a tener la
280
+
281
+ 04:24.040 --> 04:27.200
282
+ información suficiente para empezar a
283
+ darle valor a estas
284
+
285
+ 04:27.200 --> 04:28.520
286
+ propiedades que tenemos
287
+ aquí.
288
+
289
+ 04:28.520 --> 04:29.600
290
+ ¿Cómo lo
291
+ haríamos?
292
+
293
+ 04:29.600 --> 04:34.800
294
+ Bien, empezamos con una constante persona1
295
+ igual a,
296
+
297
+ 04:34.800 --> 04:37.400
298
+ utilizando la palabra reservada new, que new,
299
+
300
+ 04:37.400 --> 04:41.880
301
+ y aquí mandamos llamar el nombre de
302
+ nuestra clase.
303
+
304
+ 04:41.880 --> 04:45.240
305
+ New lo que hace es prácticamente va a
306
+ conectar,
307
+
308
+ 04:45.240 --> 04:49.360
309
+ new va a mandar llamar a nuestra clase y
310
+ new va a conectar con
311
+
312
+ 04:49.360 --> 04:54.240
313
+ el constructor para poder entonces
314
+ rellenar estas
315
+
316
+ 04:54.240 --> 04:57.360
317
+ propiedades que tengo aquí con valores que
318
+ yo le vaya a pasar
319
+
320
+ 04:57.360 --> 05:00.800
321
+ a la clase, que es la clase que estoy
322
+ formando.
323
+
324
+ 05:00.800 --> 05:03.560
325
+ Entonces tenemos nombre y
326
+ edad.
327
+
328
+ 05:03.560 --> 05:11.320
329
+ Va a ser Mariana y Mariana tiene 25 años.
330
+
331
+ 05:11.320 --> 05:13.520
332
+ Aquí ya tenemos una nueva instancia.
333
+
334
+ 05:13.520 --> 05:15.480
335
+ Que lo que estamos haciendo es, mi
336
+ instancia se llama
337
+
338
+ 05:15.480 --> 05:20.800
339
+ persona1, estamos generando una nueva
340
+ instancia de mi clase
341
+
342
+ 05:20.800 --> 05:24.920
343
+ persona y le estamos dando el valor a los
344
+ parámetros que me
345
+
346
+ 05:24.920 --> 05:29.160
347
+ pide el constructor para que entonces
348
+ estas dos propiedades
349
+
350
+ 05:29.160 --> 05:30.080
351
+ tengan un
352
+ valor.
353
+
354
+ 05:30.080 --> 05:33.040
355
+ Y se puede utilizar en caso de que yo
356
+ mande llamar saludar.
357
+
358
+ 05:33.040 --> 05:36.360
359
+ Que en este caso es justo lo que voy a hacer.
360
+
361
+ 05:36.360 --> 05:39.000
362
+ Voy a mandar llamar persona1.saludar.
363
+
364
+ 05:45.600 --> 05:48.440
365
+ Con esto si guardo, aquí ya tengo el
366
+ primer mensaje que
367
+
368
+ 05:48.440 --> 05:49.120
369
+ está
370
+ imprimiendo.
371
+
372
+ 05:49.120 --> 05:52.440
373
+ Es, hola, mi nombre es Mariana y tengo 25
374
+ años.
375
+
376
+ 05:52.440 --> 05:55.320
377
+ Esto viene de crear una primera instancia
378
+ con esta nueva
379
+
380
+ 05:55.320 --> 05:58.000
381
+ sintaxis, que es la sintaxis de clase.
382
+
383
+ 05:58.000 --> 06:00.400
384
+ De aquí en adelante, prácticamente todo lo
385
+ que vayas
386
+
387
+ 06:00.400 --> 06:03.520
388
+ a hacer en temas de programación orientado
389
+ a objetos,
390
+
391
+ 06:03.520 --> 06:06.240
392
+ vas a utilizar esta sintaxis, clases.
393
+
394
+ 06:06.240 --> 06:08.480
395
+ Tienes tu constructor, tienes los métodos,
396
+
397
+ 06:08.480 --> 06:12.720
398
+ tienes aquí prácticamente las propiedades
399
+ y los parámetros que
400
+
401
+ 06:12.720 --> 06:15.720
402
+ se requieren para poder generar tus nuevas
403
+ instancias y tú
404
+
405
+ 06:15.720 --> 06:23.280
406
+ vas a poder utilizar
407
+ después.
408
+
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/basico-js
subir/Curso de Fundamentos de JavaScript/05-Programación Orientada a Objetos/04-index_36cbd56e-6114-4e82-92ba-c0c0792e2d31.js ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class Persona {
2
+ constructor(nombre, edad) {
3
+ this.nombre = nombre;
4
+ this.edad = edad;
5
+ }
6
+ saludar() {
7
+ console.log(`Hola, mi nombre es ${this.nombre} y tengo ${this.edad} años.`);
8
+ }
9
+ }
10
+
11
+ const persona1 = new Persona("Mariana", 25);
12
+
13
+ persona1.saludar();