Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología

Array en JavaScript

Array en JavaScript
ingrid_silva
ingrid_silva
01/08/2024

Compartir

capa

Introducción

Imagina entrar en una habitación bien organizada donde una estantería se erige en la pared. Esta estantería, con sus compartimentos numerados, contiene una variedad de objetos: libros, revistas, juguetes y cuadernos. Cada objeto tiene su lugar específico, accesible con solo señalar el número del compartimento correspondiente. Esta simple estantería es la clave para entender uno de los conceptos más fundamentales en JavaScript: los arrays.

En el mundo de la programación, los arrays actúan como estanterías, permitiendo almacenar y acceder a múltiples elementos de manera ordenada. Cada elemento en un array está asociado con un índice, similar a cómo cada objeto en nuestra estantería tiene su propio compartimento numerado. Esta organización facilita la manipulación y el acceso a los datos, haciendo de los arrays una herramienta esencial para cualquier desarrollador.

A lo largo de este artículo, exploraremos en profundidad cómo funcionan los arrays en JavaScript. Veremos cómo crear arrays, acceder a sus elementos, y cómo utilizarlos para resolver problemas comunes en la programación. Prepárate para descubrir el poder de los arrays y cómo pueden transformar tu forma de manejar datos en JavaScript.

¿Qué es un array?

Un array, o arreglo en español, es una estructura de datos que se utiliza para almacenar una colección de elementos del mismo tipo. Sin embargo, en JavaScript, esta regla tiene una excepción. En JavaScript, los arrays pueden almacenar elementos de diferentes tipos, como números, cadenas y objetos, en la misma colección. Aunque esto es posible, no es una buena práctica, ya que puede llevar a errores y dificultar el manejo y comprensión del código.

Ejemplificación de una array. Donde el estante es un array y los objetos en el estante son los elementos almacenado

¿Para qué sirve un array?

De manera más robusta, un array es una estructura de datos que sirve principalmente para organizar y almacenar datos de manera estructurada y eficiente en memoria dentro de un programa de computadora. Algunas de sus funciones principales incluyen:

  1. Almacenamiento de datos: Permite guardar múltiples valores , facilitando la gestión y manipulación de conjuntos de datos relacionados, como listas de números, cadenas de texto, o cualquier otro tipo de datos homogéneo.
  2. Acceso eficiente: Proporciona un acceso rápido a los elementos individuales mediante índices numéricos, lo que permite recuperar, modificar y procesar datos de manera eficiente sin necesidad de crear variables separadas para cada elemento.
  3. Implementación de estructuras complejas: Es fundamental en la implementación de estructuras de datos más complejas, como matrices (arrays multidimensionales) y listas, que se utilizan extensamente en algoritmos y aplicaciones informáticas para diversas tareas como cálculos matemáticos, manejo de bases de datos y desarrollo de software en general.

Para aprender más sobre los conceptos básicos de JavaScript, puedes explorar el curso de JavaScript.

Características de los Arrays

  1. Índices: Los elementos de un array están ordenados y se accede a ellos usando números llamados índices, en la mayoría de los lenguajes de programación, los índices comienzan en 0. Por ejemplo, en un array de cinco elementos, el primer elemento tiene el índice 0, el segundo el índice 1, y así sucesivamente hasta el último elemento con el índice 4.

  2. Tipo de datos: En JavaScript, un array puede contener elementos de diferentes tipos de datos. Sin embargo, aunque es posible tener un array heterogéneo, no es una buena práctica, ya que puede complicar el manejo y procesamiento del array. Es recomendable mantener los arrays homogéneos, es decir, con elementos del mismo tipo de datos, para facilitar su manipulación y mejorar la legibilidad del código.

  3. Longitud fija: Una vez que se crea un array, su tamaño es fijo y no puede cambiar. Algunos lenguajes de programación permiten redimensionar arrays, pero generalmente, esto implica crear un nuevo array con el tamaño deseado y copiar los elementos del array antiguo al nuevo. Por lo tanto, es importante definir correctamente el tamaño del array al momento de su creación para evitar problemas de capacidad.

Ejemplo ilustrativo de un array para explicar cómo funcionan los índices
// Definición del array
let elementos = ["Libro", "Revista", "Juguete", "Cuaderno"];

// Mostrar cada elemento con su índice
console.log("Elemento en el índice 0: " + elementos[0]); // Libro
console.log("Elemento en el índice 1: " + elementos[1]); // Revista
console.log("Elemento en el índice 2: " + elementos[2]); // Juguete
console.log("Elemento en el índice 3: " + elementos[3]); // Cuaderno
Ejemplo de como funciona los índices

Puedes guardar tus libros en el estante 1, tus revistas en el estante 2, los juguetes en el estante 3 y los cuadernos en el estante 4. Siempre que necesites un libro, una revista, un juguete o un cuaderno, sabrás en qué estante buscarlo.

¿Cómo funciona un Array?

Ya sabemos que un array es una estructura de datos que permite almacenar múltiples elementos de manera secuencial en memoria. Aquí se explica cómo funciona un array en detalle:

1. Declaración y Creación

Para usar un array, primero se debe declarar. Luego, se crea el array con un tamaño fijo.

// Declaración y creación de un array de enteros en JavaScript
let miArray = new Array(5);

let miArray declara una variable llamada miArray que contendrá un array. new Array(5) crea un nuevo array con 5 elementos. En JavaScript, si no se especifican los elementos del array, se crea con elementos undefined (no definidos).

Ejemplo alternativo:

let miArray = [1, 2, 3, 4, 5];

Este es un método más común y directo para crear y llenar un array en JavaScript. Aquí, miArray es un array de tamaño 4, que contiene los números enteros del 1 al 5.

2. Acceso a los Elementos

Los elementos de un array se acceden mediante su índice, comenzando desde 0. Por ejemplo, para acceder al primer elemento de miArray, se usa miArray[0].

let miArray = [1, 2, 3, 4, 5];
console.log(miArray[0]); //  1

3. Modificación de Elementos

Los elementos de un array se pueden modificar accediendo a su índice y asignando un nuevo valor.

miArray[0] = 10;
console.log(miArray[0]); // 10
console.log(miArray)//[10, 2, 3, 4, 5]

4. Iteración:

Se pueden recorrer todos los elementos de un array utilizando bucles como for o forEach.

for (let i = 0; i < miArray.length; i++) {
  console.log(miArray[i]);
}
  • Inicialización: let i = 0 inicia un contador i en 0.
  • Condición: i < miArray.length asegura que el bucle se ejecute mientras i sea menor que la longitud del array (miArray.length).
  • Incremento: i++ incrementa el contador i en 1 después de cada iteración.
  • Acceso e impresión: console.log(miArray[i]) accede a cada elemento del array y lo imprime en la consola.

Ejemplo con forEach :

miArray.forEach(elemento => console.log(elemento));
  • Iteración: miArray.forEach es un método que ejecuta una función para cada elemento del array.
  • Función flecha: elemento => console.log(elemento) es una función flecha que toma cada elemento del array y lo imprime en la consola.
¿Por qué utilizar forEach?

El método forEach es una forma moderna y más legible de iterar sobre los elementos de un array en JavaScript. A diferencia del bucle for tradicional, forEach ofrece una sintaxis más limpia y directa, lo que facilita la escritura y lectura del código. Al usar forEach, no es necesario gestionar un contador ni establecer condiciones de bucle, ya que el método maneja automáticamente la iteración sobre cada elemento del array.

Una de las principales ventajas de forEach es que se enfoca en la función que se desea ejecutar para cada elemento del array, en lugar de en los detalles del bucle. Esto hace que el código sea más declarativo y menos propenso a errores. Además, forEach permite utilizar funciones flecha y otros estilos de funciones, lo que contribuye a una mayor claridad y simplicidad en el código.

Tipos de arrays

1. Arrays Simples (o Arrays Indexados)

Son el tipo más común de array. Almacenan una colección ordenada de elementos que pueden ser de cualquier tipo de datos (números, strings, objetos, etc.). Los elementos se acceden mediante índices numéricos, empezando desde 0.

let numeros = [1, 2, 3, 4, 5];
let frutas = ["manzana", "banana", "naranja"];

2. Arrays Asociativos

Los arrays asociativos en JavaScript no son realmente arrays en el sentido tradicional, sino objetos. En los lenguajes de programación, los arrays asociativos se utilizan para almacenar pares clave-valor, donde cada clave es un identificador único que se asocia a un valor. En JavaScript, los objetos sirven para este propósito y permiten acceder a los valores a través de sus claves en lugar de índices numéricos.

Características de los Arrays Asociativos (Objetos) en JavaScript
  1. Claves y Valores: En un objeto, las claves (también llamadas propiedades) son cadenas de texto o símbolos que se asocian con valores. Los valores pueden ser de cualquier tipo de datos, incluyendo números, cadenas, funciones, arrays u otros objetos.

    let libro = {
     nombre: "Pedro Páramo",
     autor: "Juan Rulfo",
     ano: 1955,
    };
  2. Acceso a los Valores: Los valores en un objeto se acceden utilizando la notación de punto o la notación de corchetes.

    console.log(libro.nombre); // "Pedro Páramo"
    console.log(libro["ano"]); // 1955
  3. Agregando y Modificando Propiedades: Puedes agregar nuevas propiedades o modificar las existentes utilizando la notación de punto o de corchetes.

    libro.nacionalidad = "Mexicana";
    libro["ano"] = 1981;
  4. Eliminando Propiedades: Las propiedades pueden eliminarse usando la palabra clave delete.

    delete persona.nacionalidad;

Aunque los arrays asociativos en JavaScript no son verdaderos arrays, sino objetos, desempeñan un papel crucial en la manipulación de datos estructurados. Entender cómo funcionan y cómo se utilizan te permitirá manejar datos de manera más efectiva en tus aplicaciones.

3.Typed Arrays (Arrays Tipados)

Introducidos en ECMAScript 6, los typed arrays son un tipo especial de arrays que permiten manipular eficientemente matrices de datos binarios en bruto. Hay diferentes tipos de typed arrays, como Int8Array, Uint8Array, Float32Array, etc.

Se utilizan principalmente en contextos donde se necesita manipular grandes cantidades de datos binarios, como en gráficos y procesamiento de audio/video.

let buffer = new ArrayBuffer(16);
let int32View = new Int32Array(buffer);
int32View[0] = 42;

4.Arrays Dinámicos

En JavaScript, todos los arrays son dinámicos, lo que significa que su tamaño puede cambiar en tiempo de ejecución. Puedes agregar o eliminar elementos según sea necesario mediante diferentes [métodos de arrays]().

Operadores spread y rest

Los operadores spread (...) y rest (...) en JavaScript son herramientas poderosas que facilitan el manejo de datos, especialmente en contextos donde trabajas con arrays o con funciones que requieren un número variable de argumentos.

Operador Spread (...)

El operador spread se utiliza principalmente para "expandir" elementos. Sus usos más comunes son:

  1. Copiar arrays: Puedes crear copias de arrays de manera fácil y rápida.

    const array1 = [1, 2, 3];
    const array2 = [...array1];
    console.log(array2); // [1, 2, 3]
  2. Concatenar arrays: Permite combinar varios arrays en uno solo.

    const array1 = [1, 2, 3];
    const array2 = [4, 5, 6];
    const combinedArray = [...array1, ...array2];
    console.log(combinedArray); // [1, 2, 3, 4, 5, 6]
  3. Convertir strings en arrays: Separa cada carácter de un string en elementos individuales de un array.

    const str = "hello";
    const chars = [...str];
    console.log(chars); //['h', 'e', 'l', 'l', 'o']

Operador Rest (...)

El operador rest se utiliza principalmente en la definición de funciones para manejar un número variable de argumentos como un array.

function sum(...numbers) {
  return numbers.reduce((total, num) => total + num, 0);
}

console.log(sum(1, 2, 3)); //  6
console.log(sum(1, 2, 3, 4, 5)); //  15

En este ejemplo, ...numbers recoge todos los argumentos pasados a la función sum() en un array llamado numbers. Esto permite que la función sea flexible y pueda aceptar cualquier cantidad de argumentos, los cuales pueden ser procesados dentro de la función usando métodos propios de los arrays, como reduce() en este caso.

Propósito y Utilidad

  • Facilidad de manipulación: Ambos operadores facilitan la manipulación de datos, especialmente cuando trabajas con arrays y funciones que necesitan flexibilidad en la cantidad de argumentos.
  • Claridad y legibilidad: Ayudan a escribir código más claro y legible al simplificar operaciones comunes como copiar arrays, concatenarlos, o manejar argumentos de funciones de manera dinámica.

Errores comun en array

Manipular arrays en JavaScript puede llevar a cometer varios errores comunes, especialmente si no se manejan correctamente. Aquí tienes algunos de los principales errores que suelen ocurrir:

  1. Acceder a un índice fuera de rango: Intentar acceder a un índice que no existe en el array. Esto puede provocar errores como undefined o null.

  2. No verificar si un elemento existe: Antes de acceder a un elemento del array, es importante verificar si ese elemento realmente existe en ese índice.

  3. Modificar arrays inmutables: Intentar modificar arrays que son inmutables (como los creados con const). JavaScript permite modificar elementos dentro de un array constante, pero no permite reasignar el array en sí.

  4. No considerar el tipo de datos: JavaScript permite almacenar diferentes tipos de datos en un mismo array. Asegúrate de manejar correctamente los diferentes tipos de datos que puedes almacenar y operar sobre ellos de manera coherente.

  5. Modificar el array durante un bucle: Modificar un array mientras se está iterando sobre él puede llevar a comportamientos inesperados o incluso a errores. Es mejor iterar sobre una copia del array si necesitas modificarlo dentro de un bucle.

  6. No usar métodos de array adecuadamente: JavaScript proporciona métodos útiles para manipular arrays, como map, filter, reduce, etc. No utilizar estos métodos adecuadamente puede llevar a un código menos legible o menos eficiente.

  7. No considerar el rendimiento: Dependiendo de la operación que estés realizando, algunas formas de manipulación de arrays pueden ser menos eficientes en términos de rendimiento. Es importante considerar esto, especialmente al trabajar con grandes cantidades de datos.

Estos son solo algunos errores comunes, pero entender cómo funcionan los arrays en JavaScript y practicar buenas prácticas puede ayudarte a evitar problemas y escribir un código más robusto y eficiente.

Buenas prácticas en array

Seguir algunas buenas prácticas para escribir un código más limpio, eficiente y fácil de mantener. Aquí tienes algunas recomendaciones:

  1. Usar métodos de array: JavaScript proporciona muchos métodos integrados en los arrays, como map, filter, reduce, etc. Utilizar estos métodos en lugar de bucles for tradicionales puede hacer tu código más legible y menos propenso a errores.
  2. Evitar mutar arrays directamente: En lugar de modificar un array existente directamente (push, splice, etc.), considera métodos que devuelvan un nuevo array o una nueva referencia, como concat, slice, map, filter, etc. Esto ayuda a evitar efectos secundarios inesperados y facilita el rastreo de cambios en el código.
  3. Usar spread/rest operators: Para copiar o concatenar arrays, utiliza el operador de propagación (...) o el operador rest (...) en lugar de concat o push. Esto es más claro y menos propenso a errores.
  4. Evitar bucles for in: En lugar de for...in para iterar sobre arrays, usa for...of o métodos de iteración de arrays (forEach, map, filter, etc.). for...in está diseñado para objetos y puede iterar sobre propiedades no deseadas si el array ha sido extendido.
  5. Manejar correctamente los índices: Asegúrate de manejar correctamente los índices al acceder a elementos de un array para evitar errores como desbordamientos o accesos fuera de límites.
  6. Usar funciones puras: Cuando sea posible, escribe funciones que no modifiquen los arrays de entrada y que devuelvan un nuevo resultado en su lugar. Esto promueve la inmutabilidad y facilita el rastreo de cambios.
  7. Optimización de rendimiento: En operaciones intensivas con arrays grandes, considera la eficiencia de los algoritmos utilizados. Algunos métodos de array pueden ser más eficientes que otros dependiendo del contexto.
  8. Comentarios claros: Si el código realiza operaciones complejas o no evidentes con arrays, comenta el código para explicar la lógica detrás de las operaciones.

Siguiendo estas prácticas, puedes mejorar la legibilidad, mantenibilidad y eficiencia de tu código JavaScript cuando trabajes con arrays.

Conclusión

En resumen, los arrays en JavaScript son esenciales para organizar y acceder a datos de manera eficiente, simbolizando estanterías ordenadas donde cada elemento tiene su lugar definido por un índice numérico. Desde su capacidad para almacenar múltiples valores hasta su uso en estructuras de datos complejas, los arrays facilitan la manipulación y gestión de datos en programas informáticos. Entender cómo declarar, acceder y manipular arrays no solo es crucial para desarrolladores, sino que también potencia la capacidad de resolver problemas y optimizar el rendimiento en aplicaciones JavaScript. Si quieres aprender más sobre arrays, te recomiendo nuestro curso Métodos de array.

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast