Programación
Radzivon Aljovik
Entusiasta de la automatización de bajo código
4 de julio de 2024
La iteración de matrices es un concepto fundamental de JavaScript que permite a los desarrolladores recorrer y manipular los elementos de una matriz. JavaScript proporciona diversos métodos para iterar sobre matrices, desde los bucles tradicionales (while, do...while, for, for...in, for...of) hasta los métodos modernos de matrices (forEach, map, filter, reduce, reduceRight). Cada método es adecuado para tareas diferentes, como filtrar, transformar o reducir datos. Los métodos avanzados como flatMap, Array.from, keys, entries y el operador spread ofrecen flexibilidad y funcionalidad adicionales. Dominar estas técnicas permite a los desarrolladores escribir código conciso, eficiente y expresivo para manejar matrices, lo que es esencial para construir aplicaciones JavaScript robustas. Comprender estos métodos también garantiza la compatibilidad con los navegadores modernos, lo que los hace prácticos para el desarrollo web contemporáneo.
Puntos clave: JavaScript ofrece varios métodos para la iteración de matrices, incluidos los bucles tradicionales (while, do...while, for, for...in, for...of) y los métodos modernos de matrices (forEach, map, filter, reduce, reduceRight). Cada método tiene características únicas adecuadas para diferentes casos de uso, desde simples iteraciones hasta transformaciones complejas. Dominar estas técnicas permite a los desarrolladores escribir código eficiente y expresivo para manipular matrices, esencial para crear potentes aplicaciones JavaScript. La mayoría de los métodos son compatibles con los navegadores modernos, lo que garantiza una amplia compatibilidad.
Los bucles en JavaScript son estructuras de control que permiten a los desarrolladores ejecutar repetidamente un bloque de código hasta que se cumpla una condición específica. Proporcionan una forma de automatizar tareas repetitivas y procesar matrices o colecciones de datos de forma eficiente. JavaScript ofrece varios tipos de bucles, como while, do...while, for, for...in y for...of, cada uno con su propia sintaxis y casos de uso.
El bucle while a través de matrices de objetos javascript ejecuta un bloque de código mientras una condición especificada se evalúe como verdadera. Es un bucle versátil que puede utilizarse para iterar sobre matrices gestionando manualmente la variable índice. Aquí tienes un ejemplo de uso de un bucle while para iterar sobre un array:
En este ejemplo, el bucle while continúa ejecutándose mientras el índice i sea menor que la longitud de la matriz de números. El bucle imprime cada elemento en la consola e incrementa la variable índice.
El bucle do...while es similar al bucle while, pero garantiza que el bloque de código se ejecuta al menos una vez antes de comprobar la condición. Aquí tienes un ejemplo de uso de un bucle do...while en javascript:
In this case, the loop prints each fruit to the console and increments the index variable. The loop continues until the condition i < fruits.length evaluates to false.
El bucle for es una estructura de bucle compacta y muy utilizada en JavaScript. Combina las expresiones de inicialización, condición e incremento/decremento en una sola línea. Aquí tienes un ejemplo de uso de un bucle for para iterar sobre una matriz:
The for loop initializes the index variable i to 0, checks the condition i < colors.length, and increments i after each iteration. The loop prints each color to the console.
El bucle for...in se utiliza para iterar sobre las propiedades de un objeto. Cuando se utiliza con matrices, itera sobre los índices de la matriz. Aquí tienes un ejemplo:
En este ejemplo, el bucle for...in itera sobre los índices de la matriz personas. Imprime cada índice y su valor correspondiente en la consola.
El bucle for...of, introducido en ECMAScript 2015 (ES6), proporciona una forma más concisa y legible de iterar sobre objetos iterables, incluidas las matrices. Accede directamente a los valores de la matriz sin necesidad de una variable índice. He aquí un ejemplo:
javascript
En este caso, el bucle for...of itera sobre cada elemento de la matriz números y lo asigna a la variable número. El bucle imprime cada número en la consola.
El método forEach() es un método incorporado a las matrices que ejecuta una función proporcionada una vez por cada elemento de la matriz. Ofrece un enfoque más expresivo y funcional de la iteración de matrices. He aquí un ejemplo:
En este ejemplo, se llama al método forEach() sobre la matriz de frutas. Toma como argumento una función flecha, que recibe cada fruta como parámetro y la imprime en la consola.
JavaScript proporciona otros métodos de iteración de matrices que ofrecen potentes capacidades para manipular y transformar matrices. Estos métodos incluyen:
Exploraremos estos métodos con más detalle en las secciones siguientes.
El método forEach() ejecuta una función proporcionada una vez por cada elemento de la matriz. No devuelve una nueva matriz, sino que te permite realizar una acción en cada elemento. Aquí tienes un par de ejemplos:
En este ejemplo, se utiliza el método forEach() para imprimir en la consola cada número de la matriz de números.
En este ejemplo, se utiliza el método forEach() para convertir cada fruta de la matriz frutas a mayúsculas e introducirla en una nueva matriz frutasMayúsculas.
El método map() crea una nueva matriz llamando a una función proporcionada en cada elemento de la matriz. Devuelve una nueva matriz con los resultados de la llamada a la función para cada elemento. Aquí tienes un par de ejemplos:
En este ejemplo, se utiliza el método map() para crear una nueva matriz númerosalcuadrado elevando al cuadrado cada número de la matriz números.
En este ejemplo, se utiliza el método map() para extraer la propiedad nombre de cada objeto de la matriz personas y crear una nueva matriz nombres que contenga sólo los nombres.
El método filter() crea una nueva matriz con todos los elementos que superan la prueba implementada por la función proporcionada. Devuelve una nueva matriz con los elementos que cumplen la condición. Aquí tienes un par de ejemplos:
En este ejemplo, se utiliza el método filter() para crear una nueva matriz evenNumbers filtrando la matriz numbers para incluir sólo números pares.
En este ejemplo, se utiliza el método filter() para crear una nueva matriz adultPersons filtrando la matriz persons para incluir sólo a las personas que tengan 18 años o más.
El método reduce() ejecuta una función reductora en cada elemento de la matriz, dando como resultado un único valor de salida. Toma un acumulador y el elemento actual como argumentos y devuelve el acumulador para la siguiente iteración. Aquí tienes algunos ejemplos:
En este ejemplo, se utiliza el método reducir() para calcular la suma de todos los números de la matriz números. El valor inicial del acumulador se fija en 0.
En este ejemplo, se utiliza el método reducir() para concatenar todas las palabras de la matriz palabras en una sola frase. El acumulador se inicializa con una cadena vacía.
En este ejemplo, se utiliza el método reduce() para calcular la edad total de todas las personas de la matriz personas. El acumulador se inicializa a 0.
El método reduceDerecha() es similar al método reduce(), pero ejecuta la función reductora de derecha a izquierda (del último elemento al primero). Aquí tienes un par de ejemplos:
En este ejemplo, se utiliza el método reducirDerecha() para calcular la suma de todos los números de la matriz números, empezando por el último elemento y avanzando hacia el primero.
En este ejemplo, se utiliza el método reducirDerecha() para concatenar todas las palabras de la matriz de palabras en una sola frase, empezando por la última palabra y avanzando hacia la primera.
El método every() comprueba si todos los elementos de la matriz pasan la prueba implementada por la función proporcionada. Devuelve verdadero si la función devuelve verdadero para todos los elementos, y falso en caso contrario. Aquí tienes un par de ejemplos:
En este ejemplo, el método every() se utiliza para comprobar si todos los números de la matriz numbers son pares. Devuelve verdadero, ya que todos los números cumplen la condición.
En este ejemplo, el método every() se utiliza para comprobar si todas las personas de la matriz personas son adultas (edad mayor o igual a 18 años). Devuelve verdadero, ya que todas las personas cumplen la condición.
El método some() comprueba si al menos un elemento de la matriz supera la prueba implementada por la función proporcionada. Devuelve verdadero si la función devuelve verdadero al menos un elemento, y falso en caso contrario. Aquí tienes un ejemplo:
En este ejemplo, el método some() se utiliza para comprobar si hay al menos un número par en la matriz de números. Devuelve verdadero, ya que la matriz contiene números pares.
JavaScript proporciona métodos adicionales de iteración de matrices que ofrecen una funcionalidad más avanzada. Estos métodos incluyen:
Exploremos estos métodos con más detalle.
El método flatMap() primero mapea cada elemento de una matriz utilizando una función de mapeo, y luego aplana el resultado en una nueva matriz. Combina la funcionalidad de map() y flat() en un solo método. Aquí tienes un ejemplo:
En este ejemplo, se utiliza el método flatMap() para asignar cada número de la matriz numbers a una matriz que contenga el número y su doble, y luego aplanar las matrices resultantes en una única matriz.
El método flatMap() es compatible con los navegadores modernos, incluidos Chrome 69+, Edge 79+, Firefox 62+, Safari 12+ y Opera 56+.
El método Array.from() crea un nuevo array a partir de un objeto tipo array o iterable. Te permite convertir objetos que tienen una propiedad de longitud y elementos indexados en un array. Aquí tienes un ejemplo:
array en javascript ejemplo:
En este ejemplo, se utiliza el método Array.from() para convertir un objeto similar a un array en un array real.
El método Array.from() es compatible con los navegadores modernos, incluidos Chrome 51+, Edge 15+, Firefox 54+, Safari 10+ y Opera 38+. No es compatible con Internet Explorer.
El método keys() devuelve un nuevo objeto Iterador de Matrices que contiene las claves de cada índice de la matriz. Te permite iterar sobre los índices de la matriz. Aquí tienes un ejemplo:
En este ejemplo, se utiliza el método keys() para obtener un iterador que contiene las claves (índices) de la matriz fruits. A continuación, se utiliza el bucle for...of para iterar sobre las claves e imprimirlas.
El método keys() es compatible con los navegadores modernos, incluidos Chrome 51+, Edge 15+, Firefox 54+, Safari 10+ y Opera 38+. No es compatible con Internet Explorer.
El método entries() devuelve un nuevo objeto Iterador de matrices que contiene pares clave-valor para cada índice de la matriz. Cada entrada es una matriz con la forma [índice, elemento]. Aquí tienes un ejemplo:
array en javascript ejemplo:
En este ejemplo, se utiliza el método `entries()` para obtener un iterador que contenga pares clave-valor para cada índice de la matriz `fruits`. A continuación, se utiliza el bucle `para...de` para desestructurar cada entrada en las variables `índice` y `elemento` e imprimirlas.
El método `with()` es una nueva adición introducida en ECMAScript 2023 (ES2023). Te permite crear una nueva matriz sustituyendo un elemento especificado por otro nuevo. Proporciona una forma de actualizar un elemento de una matriz sin mutar la matriz original. He aquí un ejemplo:
En este ejemplo, se utiliza el método with() para crear una nueva matriz NúmerosActualizados en la que el elemento del índice 2 se sustituye por el valor 10. La matriz original Números permanece inalterada.
El operador de expansión (...) te permite expandir una matriz en elementos individuales. Puede utilizarse para concatenar matrices, pasar matrices como argumentos a funciones o crear nuevas matrices con elementos existentes. Aquí tienes un ejemplo:
En este ejemplo, se utiliza el operador propagación para concatenar las matrices frutas y másFrutas en una nueva matriz todoFrutas.
El operador de propagación es compatible con los navegadores modernos, incluidos Chrome 51+, Edge 15+, Firefox 54+, Safari 10+ y Opera 38+. No es compatible con Internet Explorer.
JavaScript proporciona una amplia gama de métodos de iteración de matrices que permiten a los desarrolladores realizar bucles javascript a través de matrices, manipular elementos y crear nuevas matrices basándose en condiciones específicas. En este artículo hemos explorado varios métodos, incluidos los bucles tradicionales como while, do...while, for, for...in y for...of, así como métodos modernos de matrices como forEach(), map(), filter(), reduce(), every(), some(), etc.
Comprender y aprovechar estas técnicas de iteración de arrays permite a los desarrolladores escribir código conciso, eficiente y expresivo cuando trabajan con arrays para cada en javascript. Si dominas estos métodos, podrás realizar operaciones complejas en matrices con facilidad y crear potentes aplicaciones de bucles de matrices en javascript.
El bucle for...of se utiliza para iterar sobre los valores de un objeto iterable, como una matriz, mientras que el bucle for...in se utiliza para iterar sobre las propiedades enumerables de un objeto, incluidos los índices de una matriz.
Utiliza map() cuando quieras crear una nueva matriz transformando cada elemento de una matriz existente. Utiliza forEach() cuando quieras realizar una acción en cada elemento de una matriz sin crear una nueva matriz.
Puedes utilizar el método invertir() para invertir el orden de los elementos de una matriz y luego iterar sobre la matriz invertida utilizando cualquiera de los métodos de iteración tratados en este artículo.
Puedes utilizar la sentencia break para salir prematuramente de un bucle en javascript. Cuando se encuentra dentro de un bucle, break termina inmediatamente el bucle y transfiere el control a la siguiente sentencia después del bucle.