Introducción a JavaScript

1

¿Por qué aprender JavaScript?

2

¡Hola Mundo! en Mac

3

¡Hola Mundo! en Windows

4

Anatomía de una variable

5

Tipos de datos en JavaScript

6

Creación de strings

7

Operadores aritméticos

8

Conversión de tipos: Type Casting y Coerción

9

Conversión de tipos explícita e implícita

Estructuras de Control y Lógica

10

Operadores de comparación

11

Operadores lógicos

12

Ejecución condicional: if

13

Ejercicio: Adivina el número

14

Ejecución condicional: switch

15

Loop: for

16

Loop: for of

17

Loop: for in

18

Loop: while

19

Loop: do while

Funciones y This

20

Anatomía de una función

21

Funciones vs Métodos

22

Funciones puras e impuras

23

Arrow function y enlace léxico

24

Contextos de ejecución y scope chain

25

¿Qué es Closure?

26

Preguntas a Desarrolladores Senior: ¿Por qué aprender Desarrollo Web?

Manipulación de Arrays

27

Introducción a Arrays

28

Mutabilidad e inmutabilidad de Arrays

29

Modificación básica del final con push( ), pop( )

30

Iteración con map( ) y forEach( )

31

Filtrado y reducción con filter( ) y reduce( )

32

Búsqueda de elementos con find( ) y findIndex( )

33

Crear copias con slice( )

34

Spread operator: casos de uso

Programación Orientada a Objetos

35

Anatomía de un Objeto

36

Trabajando con objetos en JavaScript

37

Función constructora

38

¿Qué es una clase?

39

Prototipos y herencias

40

Herencia en la práctica

41

Prototipos en la práctica

42

this en JavaScript

43

Proyecto: Crea una red social

44

Proyecto: Crea una red social parte 2

Asincronía en JavaScript

45

¿Cómo funciona el JavaScript Engine?

46

Promesas en JavaScript

47

Usando Async y await en JavaScript

48

For await of

49

¿Cómo funciona la web?

50

¿Cómo funciona HTTP?

51

Método GET en JavaScript

52

Método POST en JavaScript

53

Método DELETE en JavaScript

54

Importancia del id en el método DELETE

55

ECMAScript 6 y tus siguientes pasos

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Filtrado y reducción con filter( ) y reduce( )

31/55
Recursos

Aportes 14

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Proceso de `reduce`: 1. **Inicio:** El `accumulator` es `{}`. 2. **Primera iteración:** * `currentValue` es `'apple'`. * `accumulator['apple']` no existe, así que se establece `accumulator['apple'] = 1`. * `accumulator` ahora es `{'apple': 1}`. 3. **Segunda iteración:** * `currentValue` es `'banana'`. * `accumulator['banana']` no existe, así que se establece `accumulator['banana'] = 1`. * `accumulator` ahora es `{'apple': 1, 'banana': 1}`. 4. **Tercera iteración:** * `currentValue` es `'hello'`. * `accumulator['hello']` no existe, así que se establece `accumulator['hello'] = 1`. * `accumulator` ahora es `{'apple': 1, 'banana': 1, 'hello': 1}`. 5. **Cuarta iteración:** * `currentValue` es `'bye'`. * `accumulator['bye']` no existe, así que se establece `accumulator['bye'] = 1`. * `accumulator` ahora es `{'apple': 1, 'banana': 1, 'hello': 1, 'bye': 1}`. 6. **Quinta iteración:** * `currentValue` es `'banana'`. * `accumulator['banana']` existe, así que se incrementa `accumulator['banana']` en 1. * `accumulator` ahora es `{'apple': 1, 'banana': 2, 'hello': 1, 'bye': 1}`. 7. **Sexta iteración:** * `currentValue` es `'bye'`. * `accumulator['bye']` existe, así que se incrementa `accumulator['bye']` en 1. * `accumulator` ahora es `{'apple': 1, 'banana': 2, 'hello': 1, 'bye': 2}`. 8. **Séptima iteración:** * `currentValue` es `'bye'`. * `accumulator['bye']` existe, así que se incrementa `accumulator['bye']` en 1. * `accumulator` ahora es `{'apple': 1, 'banana': 2, 'hello': 1, 'bye': 3}`.
Shortcut de `console.log` en VisualStudioCode: **-> clg** \*\* Solo funciona habiendo instalado previamente la extensión `JavaScript (ES6) code snippets`
No termino de entender bien como funciona **reduce()**. Estoy buscando un sitio donde lo expliquen de mejor manera
Excelente explicación y buena onda 😎
Reduce es una método para "reducir" arreglos (valga la redundancia) Donde la "reducción" típicamente se usa para llegar a un solo valor, pero no es necesariamente así: se puede usar un reduce para implementar un map o crear un objeto aún más "grande" reduce toma dos argumentos: - una función reductora - el valor inicial del acumulador La función reductora recibe dos valores: - el acumulador - el objeto actual. Sobre dicha función reductora: - Debe retornar el valor siguiente para el acumulador. - No importa el tipo de dato del acumulador, ni de los valores del arreglo, ni del valor que retorna; siempre y cuando sean coherentes con el funcionamiento interno de la función reductora, y con lo que consideremos que debe de obtenerse al final de la reducción
🟡 **No recomiendo utilizar 'reduce' para frecuencias** No lo recomiendo porque su sintaxis es confusa y puede ser muy complicada de leer en algunos problemas. Yo recomiendo utilizarlo únicamente para **reducir a un solo valor.** Es mejor realizar un `for...of` con un objeto inicial. ```js const wordFrecuency = {} for (let word of words){ if (!wordFrecuency[word]){ wordFrecuency[word] = 0 } wordFrecuency[word]++ } ``` Incluso si conoces el operador nullish el código puede reducirse a: ```js for (let word of words){ wordFrecuency[word] = (wordFrecuency[word] ?? 0) +1 } ``` O también utilizando operadores de asignación avanzados: ```js for (let word of words){ wordFrecuency[word] ??= 0 wordFrecuency[word]++ } ``` Como prefieras, lo importante es crear código que se pueda **leer fácilmente**. ¡Nunca pares de aprender! 💚
![](https://static.platzi.com/media/user_upload/image-de2ed71c-d9fa-49c1-8c32-6f2eb20e2968.jpg) ![](https://static.platzi.com/media/user_upload/image-92e2b29a-a3a1-40b3-a16c-513a1dbbb7cf.jpg)
* Estructura del metodo inmutable 'reduce': ```js const result = arreglo.reduce( (acum, element) => { // Interaccion con mis 2 variables }, acumValInicial) ``` * El acumValInicial define el tipo de variable de acum y en redundancia, el valor inicial de acum. * Si no se asigna el valor de acumValInicial, este tomara el valor inicial del primer elemento del arreglo y la iteracion comenzara con el segundo elemento. * Este metodo reducer retorna el ultimo valor de acum.
**RESUMEN:** ![](https://static.platzi.com/media/user_upload/image-ac07c23c-14f8-4f5b-8a0c-17cb7cb4b551.jpg) ![](https://static.platzi.com/media/user_upload/image-9ea70b0d-a85b-449b-a22c-e7c82c996d22.jpg)
no entendi lo del objeto vacio :( y el return lo demas si
Ustedes sabian que el typeof(NaN) es number? A![](https://static.platzi.com/media/user_upload/Screenshot%20from%202024-07-31%2014-38-44-2d3ae60f-652b-41b2-ba61-27f65d59b872.jpg)qui dejo un ejemplo de como filtrar los numeros de un array mixto.
El módulo `%` estaría mejor si lo agregaran en la sección de `Introduccion de JavaScript` he conocido muchas personas que se les olvida el `%` (también me ha pasado jaja). Como se vio en la clase, ese signo nos puede quitar muchas condicionales cuando programamos algo.
Hola! Puedes aprender más sobre estos dos métodos consultando su documentación: * 📃 [.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) * 📃 [.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce) Aquí te dejo mi versión de apuntes de esta clase! ![](https://i.imgur.com/w5YzYlj.png)
Les presento mi ejemplo practico ![]()![](https://static.platzi.com/media/user_upload/image-8abb41a3-c0bb-4c66-abc2-c1c693759150.jpg)