¡No utilices for! Métodos de Arrays en JavaScript
Cuando empezamos a aprender un lenguaje de programación, una de las primeras cosas que nos enseñan es a recorrer bucles. Cada repetición de un bucle se denomina iteración. En JavaScript, hay diferentes formas de recorrer los bucles, y podriamos hacerlo todo con bucles for… pero suele haber formas más elegantes en función de la necesidad.
No es que utilizar for sea malo (¿alguien dice clickbait? 😂), pero sí que es cierto que no facilita la lectura. Todavía más si anidamos varios bucles, con los índices i, j, k etc. Por otro lado, javascript tiene funciones específicas que cubren gran parte de las necesidades. Además, por norma general, deberíamos evitar hacer microoptimizaciones, tanto en bucles como en general. Solo en casos muy concretos vale la pena.
En este artículo vamos a repasar los métodos que considero más importantes de Array.
forEach
El sustituto directo de for es forEach. El ejemplo anterior hecho con forEach quedaría así:
map
El método map permite recorre todos los elementos de un Array y te permite transformarlos. Devolverá un Array nuevo con cada elemento transformado. Por ejemplo:
filter
Con filter, como su propio nombre indica, podemos filtrar un Array en función de las condiciones que especifiquemos. Devuelve un array nuevo con los valores que cumplan la condición.
find
Si queremos encontrar el primer elemento que cumpla una condición, podemos utilizar el método find:
reduce
Con reduce puedes transformar todos los elementos de un array a cualquier resultado. Recorre todos los elementos ejecutando una función reductora que devuelve el resultado acumulado hasta esa iteración. Como resultado final, devuelve el resultado acumulado habiendo pasado por todos los elementos:
Otro ejemplo utilizando reduce. Esta vez, contaremos cuantas veces aparece cada valor y lo devolveremos en un objeto de clave/valor:
every
Si quieres comprobar que todos los elementos de un Array cumplen una condición, every es tu método. Devuelve un booleano indicando si todos los elementos cumplen o no. Lo más importante de este método es que en el momento que un elemento no cumple la condición, deja de iterar el Array.
some
Parecido a every pero invertido. El método some devuelve un booleano en función si existe al menos un elemento del Array que cumple la condición. Al encontrar el primer elemento que cumpla, dejará de iterar el Array.
reverse
Este método tiene poco misterio. Invierte el orden de los elementos del array.
pop, push, shift, unshift
Estos métodos permiten añadir o quitar elementos del array, tanto en el inicio como en el final.
includes
Determina si el array contiene el valor introducido, devolviendo un booleano.
join
Comúnmente utilizado con el método split de los strings, join permite unir todos los elementos de un array en un string con el separador que se le indique.
sort
Podemos ordenar un array con el método sort. Es importante tener en cuenta que devuelve la referencia al mismo array, con lo que estamos modificándolo y no creando uno nuevo.
Hay mas métodos “clásicos”, como slice, splice, indexOf, concat, etc. que no he mencionado. El listado completo de métodos lo puedes encontrar en la MDN Web Docs.