Métodos de Arreglos en JavaScript Guía con Ejemplos
Los arreglos son una de las estructuras de datos más usadas en JavaScript. El lenguaje ofrece decenas de métodos nativos para crearlos, modificarlos, buscarlos, iterarlos, ordenarlos y transformarlos de forma eficaz. En esta guía encontrarás explicaciones claras y ejemplos prácticos.
Contenido 1 Creación de arreglos 2 Agregar y eliminar elementos 3 Búsqueda y localización 4 Métodos de iteración 5 Ordenación e inversión 6 Unir y aplanar 7 Copiado y relleno 8 Conversión 9 Trucos avanzados y buenas prácticas 10 Resumen rapido 11 Referencias
1 Creación de arreglos
Array.of Crea un nuevo arreglo a partir de los argumentos. Ejemplo conceptual const arr = Array.of(1, 2, 3) resultado arr es igual a [1, 2, 3].
Array.from Crea un arreglo a partir de un iterable o un objeto con longitud. Además permite aplicar una función de mapeo en la creación. Ejemplo convertir la cadena hello en arreglo de caracteres produce [h, e, l, l, o]. Ejemplo con mapeo Array.from([1, 2, 3], x => x * 2) produce [2, 4, 6]. Nota Array.from(obj, fn) equivale a Array.from(obj).map(fn) pero sin crear un arreglo intermedio y la función recibe solo elemento e indice.
2 Agregar y eliminar elementos
push Agrega elementos al final y devuelve la nueva longitud. Ejemplo fruits inicia como [apple] tras fruits.push(banana, cherry) el arreglo queda [apple, banana, cherry].
pop Elimina el ultimo elemento y lo devuelve. Ejemplo [apple, banana] tras pop devuelve banana y el arreglo pasa a [apple].
unshift Agrega elementos al principio y devuelve la nueva longitud. Ejemplo [2, 3] tras unshift(0, 1) queda [0, 1, 2, 3].
shift Elimina el primer elemento y lo devuelve. Ejemplo [1, 2, 3] tras shift devuelve 1 y queda [2, 3].
splice inicio, cantidad, items Permite eliminar, reemplazar o insertar en el arreglo modificándolo en sitio. Eliminar ejemplo en [apple, banana, cherry, grape, kiwi] usar splice(2, 2) elimina cherry y grape y deja [apple, banana, kiwi]. Insertar ejemplo en [red, green, blue] usar splice(1, 0, yellow, purple) deja [red, yellow, purple, green, blue]. Reemplazar ejemplo en [a, b, c, d, e] con splice(1, 2, x, y) resulta [a, x, y, d, e]. Indice negativo ejemplo [10, 20, 30, 40, 50] con splice(-2, 2) elimina los dos ultimos y queda [10, 20, 30].
slice inicio, fin Devuelve una copia superficial de una porción sin modificar el original. Ejemplos básicos [ant, bison, camel, duck, elephant] con slice(2, 4) resulta [camel, duck]. Omitiendo fin slice(1) en [red, green, blue, yellow, purple] produce [green, blue, yellow, purple]. Indices negativos [a, b, c, d, e] con slice(-2) da [d, e] y con slice(-3, -1) da [c, d].
3 Búsqueda y localización
indexOf valor, desde Devuelve el primer indice donde aparece el valor o -1 si no existe usando comparación estricta. Ejemplos fruits [apple, banana, cherry, apple] indexOf(apple) devuelve 0 y indexOf(orange) devuelve -1. En numbers [10, 20, 30, 40, 50, 20] indexOf(20) devuelve 1 e indexOf(20, 2) devuelve 5.
lastIndexOf valor, desde Devuelve el ultimo indice del valor o -1 si no existe. Ejemplo [apple, banana, cherry, apple, banana] lastIndexOf(banana) devuelve 4 mientras que indexOf(banana) devuelve 1. lastIndexOf(orange) devuelve -1.
includes valor, desde Indica si el arreglo incluye el valor. Ejemplo [apple, banana, cherry] incluye banana es true e incluye grape es false. En [10, 20, 30, 40, 50] includes(40, 3) es true e includes(20, 2) es false. Ventaja includes detecta NaN en [1, 2, NaN] includes(NaN) es true mientras indexOf(NaN) devuelve -1.
find callback Devuelve el primer elemento que cumple la condición o undefined. Ejemplo con usuarios [{id 1, name Alice}, {id 2, name Bob}, {id 3, name Charlie}] find por id 2 devuelve {id 2, name Bob}. Buscar id 99 devuelve undefined.
findIndex callback Devuelve el indice del primer elemento que cumple la condición o -1. Con el mismo arreglo findIndex por nombre Bob devuelve 1 y por David devuelve -1.
4 Métodos de iteración
forEach Ejecuta una acción por cada elemento sin crear un nuevo arreglo ni devolver valor. Ejemplo en [red, green, blue] imprime Color en indice 0 es red y así sucesivamente.
map Crea un nuevo arreglo transformando cada elemento. Ejemplo usuarios a nombres produce [Alice, Bob, Charlie].
filter Crea un nuevo arreglo con los elementos que cumplen una condición. Ejemplo usuarios con rol admin en [{name Alice, role admin}, {name Bob, role user}, {name Charlie, role admin}] devuelve [{name Alice, role admin}, {name Charlie, role admin}].
reduce Reduce el arreglo a un unico valor de cualquier tipo. initialValue es opcional pero recomendable. Ejemplo contar mascotas en [dog, cat, dog, fish, cat, dog] produce {dog 3, cat 2, fish 1}.
some Comprueba si al menos un elemento cumple la condición. Ejemplo en [{name Alice, role user}, {name Bob, role editor}, {name Charlie, role admin}] devuelve true al buscar role admin.
every Comprueba si todos los elementos cumplen la condición. Ejemplo si todos tienen role admin devuelve true en un arreglo de tres admins.
5 Ordenación e inversión
sort Ordena en sitio y devuelve el arreglo. Por defecto compara como texto en orden ascendente. Con strings [banana, apple, cherry] queda [apple, banana, cherry]. Con números sin función de comparación [10, 2, 5, 20] da [10, 2, 20, 5] porque se comparan como texto. Para números usa una función de comparación numbers.sort((a, b) => a - b) orden ascendente da [2, 5, 10, 20] y numbers.sort((a, b) => b - a) descendente da [20, 10, 5, 2]. Para objetos puedes ordenar por una propiedad users.sort((a, b) => a.age - b.age).
reverse Invierte el arreglo en sitio. Ejemplo [1, 2, 3, 4, 5] pasa a [5, 4, 3, 2, 1].
6 Unir y aplanar
join separador Une los elementos y devuelve una cadena usando coma por defecto o el separador indicado. Ejemplos [Hello, World] con separador espacio produce Hello World. [j, a, v, a, s, c, r, i, p, t] con separador vacio produce javascript.
flat profundidad Devuelve un nuevo arreglo aplanando subarreglos hasta la profundidad indicada sin modificar el original. Ejemplo [1, [2, [3, 4]]] flat() produce [1, 2, [3, 4]] y flat(2) produce [1, 2, 3, 4]. Puedes usar Infinity si no conoces la profundidad. flat además elimina huecos vacios por ejemplo [1, , 3, [4, 5]] con flat() resulta [1, 3, 4, 5].
flatMap callback Combina map y flat de profundidad 1 en una sola operación mas eficiente. Ejemplo dividir oraciones [hello world, how are you] en palabras produce [hello, world, how, are, you]. También sirve para filtrar y transformar a la vez ejemplo en [1, 2, 3, 4] devolver [] para pares y el doble para impares produce [2, 6].
7 Copiado y relleno
fill valor, inicio, fin Rellena con un valor desde inicio hasta fin sin incluirlo y modifica el arreglo. Ejemplo [apple, banana, cherry, grape] con fill(kiwi, 1, 3) resulta [apple, kiwi, kiwi, grape]. Soporta indices negativos por ejemplo [a, b, c, d, e] con fill(z, -2) deja [a, b, c, z, z].
copyWithin destino, inicio, fin Copia una porción del propio arreglo sobre si mismo sobrescribiendo sin cambiar la longitud. Ejemplo [a, b, c, d, e] con copyWithin(0, 3) produce [d, e, c, d, e].
8 Conversión
toString Devuelve una representación de texto del arreglo y sus elementos. Ejemplo [apple, banana, cherry] produce apple,banana,cherry. En anidados [1, 2, [3, 4]] produce 1,2,3,4.
entries Devuelve un iterador de pares indice valor. Útil para recorrer con el indice y el elemento a la vez por ejemplo yields [0, apple], [1, banana], [2, cherry]. También puedes desestructurar a indice y valor durante el recorrido.
9 Trucos avanzados y buenas prácticas
Encadenamiento Los métodos de arreglo se pueden encadenar para crear flujos declarativos y legibles. Ejemplo usuarios filtrados por activos y luego mapeados a sus nombres produce algo como [Bob, Charlie].
Inmutabilidad En desarrollo moderno es recomendable evitar mutar arreglos originales. En lugar de reverse directo sobre el arreglo, copia primero con spread y luego invierte por ejemplo [...original].reverse. Hoy existen métodos inmutables como toSorted, toSpliced y with que devuelven copias sin tocar el original, ideales para interfaces reactivas y estado predecible.
Usa reduce para transformaciones complejas reduce es versatil y puede replicar muchos patrones al convertir un arreglo en un acumulado o en otra estructura. Ejemplo agrupar estudiantes por calificacion a un objeto como {A [Alice, Charlie], B [Bob]}.
Elige el método adecuado forEach para efectos colaterales al iterar. map para transformar cada elemento y obtener un arreglo de igual longitud. filter para seleccionar subconjuntos. reduce para computar un valor o estructura nueva a partir del arreglo. find y some son eficientes para comprobaciones de existencia porque detienen el recorrido al cumplir la condicion.
10 Resumen rapido Los arreglos en JavaScript tienen más de cuarenta métodos entre creación, búsqueda, iteración, mutación y conversión. Dominar reduce, map y filter te permite escribir código expresivo y declarativo. Encadena métodos para lograr pipelines limpios. Prefiere estrategias inmutables usando toSorted, toSpliced y with. Evita mutar directamente, crea copias cuando sea necesario.
Q2BSTUDIO tu aliado tecnológico En Q2BSTUDIO desarrollamos software a medida y aplicaciones a medida con foco en rendimiento, seguridad y escalabilidad. Somos especialistas en inteligencia artificial, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, además de automatización de procesos y arquitectura de datos. Si buscas un partner para impulsar tu producto con código robusto y buenas prácticas en JavaScript y frameworks modernos, podemos ayudarte. Descubre nuestros servicios de aplicaciones a medida y software a medida o potencia tu organización con inteligencia artificial e ia para empresas.
11 Referencias MDN Web Docs Array documentación oficial. JavaScript info Arrays guía completa. W3Schools Arrays referencia rápida. Especificacion ECMAScript Arrays estandar tecnico. 30 Seconds of Code snippets de arreglos. You Dont Know JS libro recomendado.
Sugerencia practica crea pequeños retos con datos reales filtrado de listas, transformaciones y agregaciones para afianzar memoria muscular. Los arreglos están en todas partes en JavaScript mientras mejor los domines mas solida será tu base como desarrollador.