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

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
11 Hrs
30 Min
41 Seg

Loop: for of

16/55
Resources

What is the loop for-of method and how does it work?

The loop for-of method is a powerful programming tool that allows you to iterate over iterable objects. Although it may seem complicated at first, its application becomes intuitive once you understand how it works and its practical applications. The name "for-of" is already quite descriptive: it's about traversing element by element of a collection. In this content, I will teach you how to use it effectively.

On what kind of objects is for-of used?

The for-of is used on iterable objects, such as arrays and strings. These are elements that, by their nature, are arranged in the form of a list that we can traverse or iterate through. Thanks to its structure, the for-of allows us to execute code repeatedly for each element present in these collections.

What is the structure of for-of?

To implement a for-of, you must follow a basic structure:

  1. Start with the reserved word for.
  2. Add parentheses (), where a variable representing each element is defined.
  3. Use the term of followed by the iterable object you are traversing.
  4. Finally, open braces {} to include the block of code to be executed for each element.

Here's an example in code:

let basket = ['apple', 'pear', 'orange', 'grape'];
for (let fruit of basket) { console.log(fruit);}

In this case, the for-of will traverse through each item in the basket list and print "apple", "pear", "orange" and "grape" in the browser console, one by one.

What are the advantages of using for-of?

  • Simplicity and readability: Its syntax is clear and straightforward, making it easy to follow the code.
  • Versatility: It can be used for any iterable object, allowing a wide range of applications.
  • Avoids common errors: By automatically handling the indexes that control iteration, potential errors are minimized compared to more manual methods.

What are the important things to remember?

  • Limitations to iterable objects: Only iterable objects such as arrays and strings can be used, it does not apply to non-iterable objects.
  • Practical and specific use: Remember that for-of is ideal for cases where you want to access values directly, and not indexes as with for-in.

Understanding and using for-of is a valuable skill that can significantly improve the efficiency and clarity of your code, so keep practicing and master its use to become an iteration expert!

Contributions 29

Questions 3

Sort by:

Want to see more contributions, questions and answers from the community?

El ciclo `for... of` permite operar sobre un *objeto iterable*, es posible que en algún momento te encuentres con un error del estilo [TypeError: 'x' is not iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/is_not_iterable), que nos indica que la estructura que estamos tratando de utilizar en nuestro ciclo no es iterable, es por esto que debemos tener claro lo que hace que un objeto sea iterable. En esencia, un objeto iterable es aquel que tiene un [protocol de iteración definido](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterator_protocol), los más comunes que encontramos son los Arrays y las Strings. (En lenguaje técnico si el objeto tiene un `Symbol.iterator`, entonces este es iterable) **OJO 👀** lo que llamamos comunmente en JS como [objetos](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object), esas variables que tienen una estructura `{}`, NO son iterables, para explorar estos objetos, podemos usar el método `for... in` el cual vemos en la siguiente clase! > 💡 [Aquí encuentras la documentación sobre el ciclo for... of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of)
![](https://static.platzi.com/media/user_upload/for-of-1-1bd64d2e-7c91-4c12-84b1-4947a5ced521.jpg) ![](https://static.platzi.com/media/user_upload/for-of-2-5eadc1a9-2c4b-415f-bfe8-25dc85adbed1.jpg) ![](https://static.platzi.com/media/user_upload/for-of-3-cea280c8-950f-4fb8-b3c2-67a263d017a7.jpg) ![](https://static.platzi.com/media/user_upload/for-of-4-a9715189-88f3-44a3-b261-169292705c65.jpg) ![](https://static.platzi.com/media/user_upload/for-of-5-6ee7d860-175f-4d9e-8ec9-a4f402d1f40c.jpg) ![](https://static.platzi.com/media/user_upload/for-of-6-2768cde1-008a-4df1-98dd-9600199028ec.jpg) ![](https://static.platzi.com/media/user_upload/for-of-7-6f29e09f-ecdf-48a5-817f-045ce7f7d9d9.jpg) ![](https://static.platzi.com/media/user_upload/for-of-8-7aa9f99a-b220-4b2b-906a-965b49f04f64.jpg) ![](https://static.platzi.com/media/user_upload/for-of-9-3fdf2239-3274-493b-bf7b-bc106107b0d0.jpg) ![](https://static.platzi.com/media/user_upload/for-of-10-024ee9a0-f6b0-4653-a850-45b621bd631a.jpg) ![](https://static.platzi.com/media/user_upload/for-of-11-bbef6c24-44ac-4228-93c2-3c58e2731a79.jpg) ![](https://static.platzi.com/media/user_upload/for-of-12-e7e3eead-9d6f-4508-b480-e47cce377fb5.jpg) ![](https://static.platzi.com/media/user_upload/for-of-13-4ffa0bcd-1883-4c7a-aa97-fc441b41cff4.jpg) ![](https://static.platzi.com/media/user_upload/for-of-14-7661bb5f-ceed-4ce6-b15e-387862944ff0.jpg)![](https://static.platzi.com/media/user_upload/for-of-15-1bbcf8d8-42d5-4308-acd0-c875f34ad743.jpg)
no queda claro como se usa, falta explicación
Los **maps** y **sets** también son objetos iterables, por lo que se podrían usar también el for of en esos tipos de datos.
![](https://static.platzi.com/media/user_upload/image-ca1ecc51-0503-4e6e-932b-5390b4e2f21a.jpg)
## Loop For of El bucle `for...of` en JavaScript es una estructura de control introducida en ECMAScript 6 (ES6) que simplifica la iteración sobre elementos iterables como arrays, strings, sets, maps, entre otros. A diferencia del bucle `for` tradicional que se basa en índices numéricos, `for...of` recorre cada elemento del iterable directamente, proporcionando una sintaxis más simple y legible. ### Sintaxis del Bucle `for...of` La sintaxis básica de `for...of` es la siguiente: `for (variable of iterable) {` ` // Código a ejecutar para cada elemento` `}` * **variable**: Una variable que se asigna al valor de cada elemento en cada iteración. * **iterable**: Un objeto iterable como un array, string, set, map, etc. ### Ejemplo Básico con Array `let colores = ["rojo", "verde", "azul"];` `for (let color of colores) {` ` console.log(color);` `}` Este ejemplo imprimirá cada color del array `colores` en cada iteración. ### Limitaciones * **No Accede a Índices Directamente**: A diferencia del bucle `for` tradicional, `for...of` no proporciona acceso directo a los índices del iterable. Si necesitas los índices, puedes usar el método `entries()` en conjunción con `for...of`.
Existe una alternativa a for of, y es **forEach()**. . Su estructura es la siguiente, aplicaré el mismo ejemplo de la clase pero adaptado a forEach()... . ```js let canasta = ['manzana', 'pera', 'naranja', 'uva']; canasta.forEach((fruta) => { console.log(fruta); }); ```
**APUNTES:** ![](https://static.platzi.com/media/user_upload/image-beb18f43-9e1a-42b0-a865-106dd63b32f6.jpg)
```js //Declaración de la lista 'canasta' -> array que contiene 5 elementos let canasta = ["manzana","pera","naranja","uva", "kiwi"]; //Inicialización del contador: se inicializa en 1, se enumera las frutas let i = 1; //Este bucle 'for...of' recorre cada elemento del array en cada iteración for(fruta of canasta){ console.log(`${i}. ${fruta}`); i++; //Después de imprimir cada fruta 'i' se incrementa en 1 en la siguiente iteración } ``````js 1. manzana 2. pera 3. naranja 4. uva 5. kiwi ```
Aqui mi prueba con un objeto: ![](https://static.platzi.com/media/user_upload/Screenshot%20from%202024-07-24%2020-11-41-c5c7d4cd-a65d-41ca-ac65-0d81f5194650.jpg)
Wow, no conocia que se podia iterar en strings. **Aquí les va un ejemplo:** . ```js let abecedario = 'abcdefghijklmnñopqrstuvwxyz'; for (letra of abecedario) { console.log(letra); }; ```
La sentencia sentencia ***for...of*** ejecuta un bloque de código para cada elemento de un objeto iterable, como lo son: String, Array, objetos similares a array. ![](https://static.platzi.com/media/user_upload/for%20of-33093bf7-83f3-42a4-9cdc-ff5c8eedb626.jpg) Ejemplo: ```js //for of let menu = ['pambazo','quesadilla','pizza','tacos'] for (comida of menu){ console.log(comida); } ```
Es como un `for object in objects:` `print(object)` de python
For of, funciona en objetos iterables como arrays o strings, la diferencia con el for normal Es que no debes definir contadores, no debes establecer condiciones, el ciclo se lee directamente con for of, es solo para bucles que necesites escribir de forma rapida, y solo permite leer, no ofrece ventajas como saltarse numeros o hacerlo a la inversa como for normal
El bucle `for...of` efectivamente itera sobre objetos iterables como arrays o strings sin necesidad de definir contadores o condiciones de finalización. Esto lo hace más limpio y directo en comparación con el `for` tradicional, donde debes manejar el índice y las condiciones del bucle. En el `for...of`, simplemente declaras la variable para cada elemento y el iterable, facilitando la lectura y reduciendo el riesgo de errores. Es una herramienta útil para simplificar el código en situaciones donde no necesitas el índice.
![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202025-03-28%20192357-7b58bc7d-1522-4b6a-8c84-b1f181c571f6.jpg)![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202025-03-28%20192423-02472a43-4312-463f-96ad-12016ce69127.jpg)
```js let semana = ["lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo"] function escribirDiaDeLaSemana(){ for (dia of semana) console.log(dia) } escribirDiaDeLaSemana() ```
[Javascript for... of Loop](https://www.programiz.com/javascript/for-of)
Ejemplo de como hacerlo con objetos en for of ![](https://static.platzi.com/media/user_upload/image-8fa4417d-a9d7-4eb7-ab27-a643c529a885.jpg)
¿En qué momento se definió a los elementos como "frutas"? Es decir, se asume por default: javascrip sabe que son frutas o, en qué parte del código se determina??
![](https://static.platzi.com/media/user_upload/image-ba9658da-5200-4139-a005-554cbb3c0487.jpg)
![](https://static.platzi.com/media/user_upload/for-of-c88428b0-d266-4693-ae37-c4bc92d0f8f8.jpg)
```js let canasta = ['manzanas','peras','naranjas','uvas','piñas','papayas']; let i = 0; for(fruta of canasta){ console.log(`${i+=1}. ${fruta}`); } ```
```js let materias = ["desarrollo web", "analista de sistemas", "ingeniero de computación", "programador", "diseño web"] for (const materia of materias) { if (materia === "programador") { console.log(`encontre la materia: ${materia}, salgo del ciclo`) break; } console.log(`${materia}`) } ```let materias = \["desarrollo web", "analista de sistemas", "ingeniero de computación", "programador", "diseño web"] for (const materia of materias) {  if (materia === "programador") {    console.log(`encontre la materia: ${materia}, salgo del ciclo`)    break;  }  console.log(`${materia}`)}
let canasta  = \["manzana","pera","naranja","uva"];/\*  lista original  \*/ for(frutas of canasta) {  console.log(frutas);   canasta.push("mangos"); /\* agrega una fruta adicional al final de la lista \*/  console.log(canasta);   canasta.unshift("kiwi");  /\* agrega una fruta al inicio de la lista  \*/ console.log(canasta);  canasta.pop();/\*  aqui elimina el ultimo elemento de la lista  \*/ console.log(canasta)  canasta.shift(); console.log(canasta);  /\* aqui elimina el primer elemento de la lista  \*/  /\*  aqui eliminamos el elemento que escojamos  \*/ let index = canasta.indexOf("uva"); if (index !== -1) {    canasta.splice(index, 1); // Elimina "pera" } console.log(canasta);   canasta.splice(2, 0, "fresa"); // Inserta "fresa" en la posición 2 console.log(canasta);  canasta.splice(0, 1, "durasno"); // quitamos manzano y la renplazamos por durasno   console.log(canasta);   break; }
## Método `for...of` en JavaScript * El método `for...of` es una forma sencilla y explícita de iterar sobre elementos de objetos iterables. * Es especialmente útil para trabajar con arrays y strings. * Permite ejecutar un bloque de código para cada elemento de una lista o string. ## Estructura del Método `for...of` * La sintaxis básica es: `for (variable of objetoIterable) { código a ejecutar }`. * `variable` representa el elemento actual de la iteración. * `objetoIterable` es el array o string sobre el que se está iterando. ### Ejemplo de Código let canasta = \["manzana", "pera", "naranja", "uva"]; for (let fruta of canasta) { console.log(fruta); } ### Explicación del Código * Declaramos una lista de frutas: `canasta`. * Usamos el método `for...of` para iterar sobre cada fruta en `canasta`. * `console.log(fruta);` imprime la fruta actual en la consola. ## Ventajas del Método `for...of` * **Simplicidad**: La sintaxis es directa y fácil de entender. * **Legibilidad**: El código es más legible en comparación con los loops tradicionales. * **Eficiencia**: Es eficiente para iterar sobre arrays y strings. ### Ejemplo Práctico * Supongamos que tenemos una lista de frutas y queremos imprimir cada fruta en la consola. let frutas = \["manzana", "pera", "naranja", "uva"]; for (let fruta of frutas) { console.log(fruta); } ### Explicación del Ejemplo * Declaramos una lista de frutas: `frutas`. * Usamos `for (let fruta of frutas) { console.log(fruta); }` para iterar sobre cada fruta. * La variable `fruta` toma el valor de cada elemento en `frutas` y se imprime en la consola. ## Próximos Pasos * Practicar con el método `for...of` para familiarizarse con su uso en diferentes escenarios. * Explorar otras funciones de iteración en JavaScript como `forEach`, `map`, `filter` y `reduce`. * Aplicar `for...of` en proyectos más complejos para ver su utilidad en contextos reales.
¿Cómo alterar los elementos de la lista a medida que recorremos la misma con el loop for...of? . . ```js const bookshelf = ['A', 'B', 'C', 'D'] for (book of bookshelf){ if(bookshelf.indexOf(book) % 2 == 0){ bookshelf[bookshelf.indexOf(book)] = book + ' → øþł' // modifying the characters of an array of strings } } console.log(bookshelf) // [ 'A → øþł', 'B', 'C → øþł', 'D' ] ```. Usamos la concatenacion para cambiar cada string que cumple la condición de que nuestro indice del book sea par, esto añadiendolo en su posición con indexOf (método de listas) en el array de libros
Así fue como utilicé este for. Mi principal tarea es poder acceder a un array para posteriormente buscar el objeto que contenga un ID específico entregado por un usuario. ```js /** * Mostramos por pantalla la tarea que contenga el ID pasado por el usuario. * @param {number} taskId */ function listTaskById(taskId) { if (taskId < 1 && taskId > arrOfTasks.length) { alert("Haz ingresado un ID erróneo, por favor ingrese un ID válido"); return; } for (let value of arrOfTasks) { if (value.id === taskId) { alert(`=== Tarea ${taskId} ===\n${value.name}`); return; } } alert("Haz ingresado un ID inexistente."); } ```
Este fue mi ejercicio practico ![]()![](https://static.platzi.com/media/user_upload/image-3e158c9b-cdf9-4b1d-826d-7f34c1d58dd6.jpg)