Arrays en JavaScript: índices, orden y mutabilidad | Nicolás Garzón
Un array es una colección ordenada de valores. Cada posición se identifica mediante un índice numérico que comienza en 0.
JavaScript
Copiar const technologies = [
"JavaScript" ,
"TypeScript" ,
"React" ,
] ;
technologies[ 0 ] ;
technologies[ 2 ] ; JavaScript
Copiar const colors = [ "red" , "green" , "blue" ] ; Texto
Copiar Índice: 0 1 2
Valor: "red" "green" "blue"El primer elemento está en 0. El último índice de un array denso suele ser length - 1.
JavaScript
Copiar colors[ colors. length - 1 ] ; También puede utilizarse at:
JavaScript
Copiar colors. at ( - 1 ) ; Los corchetes no interpretan índices negativos desde el final.
JavaScript
Copiar colors[ - 1 ] ; Aquí -1 se trata como el nombre de una propiedad normal, no como una posición del array.
JavaScript
Copiar typeof [ ] ;
Array. isArray ( [ ] ) ; Un array tiene comportamiento especial para índices y length, además de métodos heredados desde Array.prototype.
JavaScript
Copiar const values = [ ] ;
Object. getPrototypeOf ( values) === Array . prototype; Utiliza Array.isArray cuando necesites reconocer un array.
JavaScript
Copiar const mixed = [
"Nicolás" ,
21 ,
true ,
{ role : "developer" } ,
[ "JavaScript" , "React" ] ,
] ; JavaScript lo permite, pero una colección suele ser más fácil de entender cuando sus elementos representan el mismo tipo de cosa.
JavaScript
Copiar const products = [
{ id : "p1" , name : "Keyboard" } ,
{ id : "p2" , name : "Mouse" } ,
] ; La homogeneidad aquí es una decisión de diseño, no una restricción del lenguaje.
Usa un array cuando importan:
El orden.
La posición.
La repetición de elementos.
El recorrido como secuencia.
JavaScript
Copiar const steps = [ "created" , "paid" , "shipped" ] ; Usa un objeto cuando cada dato tiene un nombre propio.
JavaScript
Copiar const order = {
id : "order-1" ,
status : "paid" ,
total : 120 ,
} ; No conviertas información con campos conocidos en posiciones difíciles de recordar.
JavaScript
Copiar const order = [ "order-1" , "paid" , 120 ] ; order[2] comunica menos que order.total.
JavaScript
Copiar const board = [
[ "A1" , "A2" ] ,
[ "B1" , "B2" ] ,
] ;
board[ 1 ] [ 0 ] ; Cada elemento puede ser otro array. No significa que JavaScript tenga una matriz especial; es un array que contiene arrays.
JavaScript
Copiar const first = [ 1 , 2 , 3 ] ;
const second = [ 1 , 2 , 3 ] ;
first === second; Son objetos diferentes aunque contengan los mismos valores.
JavaScript
Copiar const alias = first;
alias === first; alias y first apuntan al mismo array.
JavaScript
Copiar alias. push ( 4 ) ;
first; Aunque la variable use const, el contenido puede cambiar.
JavaScript
Copiar const items = [ "keyboard" ] ;
items. push ( "mouse" ) ; const evita reasignar la variable, no congela el array.
JavaScript
Copiar items = [ ] ; Para representar una actualización sin modificar el original:
JavaScript
Copiar const nextItems = [ ... items, "monitor" ] ; Como pila, se trabaja normalmente desde el final.
JavaScript
Copiar const stack = [ ] ;
stack. push ( "first" ) ;
stack. push ( "second" ) ;
stack. pop ( ) ; Como cola, puede utilizarse push y shift.
JavaScript
Copiar const queue = [ ] ;
queue. push ( "first" ) ;
queue. push ( "second" ) ;
queue. shift ( ) ; Para colas grandes o muy activas, eliminar repetidamente desde el inicio puede ser menos conveniente porque los motores pueden necesitar reorganizar posiciones. Una estructura con índice de lectura puede ser más adecuada.
JavaScript
Copiar Boolean ( [ ] ) ; Para comprobar si no contiene elementos:
JavaScript
Copiar if ( items. length === 0 ) {
console. log ( "Empty" ) ;
} JavaScript
Copiar const numbers = [ 1 , 2 , 3 ] ;
Object. hasOwn ( numbers, "map" ) ;
Object. hasOwn ( Array . prototype, "map" ) ; Métodos como map, filter, push y slice se encuentran mediante la cadena de prototipos.
JavaScript
Copiar const statusHistory = [
{
status : "created" ,
changedAt : "2026-07-23T10:00:00Z" ,
} ,
{
status : "paid" ,
changedAt : "2026-07-23T10:05:00Z" ,
} ,
] ;
const currentStatus =
statusHistory. at ( - 1 ) ?. status ?? "unknown" ; El orden representa la secuencia temporal de cambios.
Esperar que el primer índice sea 1.
Usar array[-1] para leer el último elemento.
Comprobar arrays mediante typeof value === "array".
Comparar arrays por contenido con ===.
Creer que const vuelve inmutable un array.
Utilizar posiciones cuando un objeto con nombres sería más claro.
Comprobar un array vacío con if (!array).
Mezclar tipos sin un motivo comprensible.
Suponer que una matriz es un tipo distinto del lenguaje.
Un array es una colección ordenada e indexada desde cero.
Es un objeto especializado y se detecta con Array.isArray.
El orden y la posición forman parte del contrato.
Puede contener cualquier valor, incluidos otros arrays.
Se compara por identidad, no por contenido.
Es mutable aunque esté guardado en una variable const.
at(-1) permite leer desde el final.
Un array vacío sigue siendo truthy.
¿Qué valores devuelven estas expresiones?
JavaScript
Copiar const values = [ "A" , "B" , "C" ] ;
values[ 0 ] ;
values. at ( - 1 ) ;
values[ - 1 ] ;
Array. isArray ( values) ; Respuesta Devuelven "A", "C", undefined y true. -1 con corchetes no representa la última posición.
Creación, acceso y longitud explica las diferentes formas de construir arrays, leer posiciones y entender el comportamiento especial de length.