HOWTO · JavaScript
Eliminar el primer elemento de un array en JavaScript
Este artículo explica varias formas de eliminar el primer elemento de un array de JavaScript.
En esta página
Para quitar el primer elemento de un array de JavaScript, usa shift() o splice(0, 1) para modificar el array original. Si necesitas conservarlo, usa slice(1) o filter() para crear uno nuevo. shift() devuelve el elemento eliminado como un valor individual, mientras que splice(0, 1) lo devuelve dentro de un array.
Quitar el primer elemento modificando el array
Tanto shift() como splice() eliminan un elemento del array original. Elige shift() si siempre quieres quitar el primero; elige splice() si quieres aplicar la misma operación en un índice concreto o eliminar varios elementos.
shift() elimina el elemento del índice 0, desplaza los elementos restantes hacia el principio y devuelve el valor eliminado. Ejecuta este ejemplo para ver el array actualizado y el elemento devuelto:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
const items = ["first", "second", "third"];
const removed = items.shift();
console.log(JSON.stringify({ items, removed }));
{"items":["second","third"],"removed":"first"}
Después de estas instrucciones, items contiene las dos últimas cadenas y removed contiene "first". JSON.stringify() convierte el objeto impreso en una sola línea JSON en un entorno de ejecución de JavaScript. El valor literal "first" es una cadena de ejemplo en inglés.
Usa splice(start, deleteCount) cuando necesites elegir la posición. Para eliminar el primer elemento, pasa 0 como start y 1 como deleteCount. El array original se modifica y el método devuelve un array con los elementos eliminados. Por ejemplo, con const values = ["red", "green", "blue"], const removed = values.splice(0, 1) deja values como ["green", "blue"] y asigna ["red"] a removed.
El argumento start indica un índice; no establece una dirección de recorrido. Un índice no negativo cuenta desde el principio, mientras que uno negativo cuenta desde el final (-1 se refiere al último elemento). deleteCount indica cuántos elementos se eliminan a partir de esa posición. Si lo omites, splice() elimina todos los elementos desde start hasta el final. Los elementos que se proporcionan después de deleteCount se insertan en esa posición. Consulta la referencia de splice() en MDN para conocer todos los detalles de sus parámetros.
Quitar el primer elemento sin modificar el array
slice() y filter() devuelven arrays nuevos y dejan intacto el array de entrada. Usa slice(1) para copiar directamente todos los elementos posteriores al primero. El índice start se incluye y el índice end, que es opcional, se excluye. Así, values.slice(1) copia desde el índice 1 hasta el final; no elimina nada de values. Consulta la guía de slice() y la referencia de slice() en MDN para obtener más información.
Usa filter() cuando la eliminación dependa de una condición. Su función de retorno de llamada se ejecuta para cada elemento, y los elementos para los que devuelve true se incluyen en un array nuevo. Para omitir solo la primera posición, filtra por índice:
const remaining = values.filter((item, index) => index > 0);
Esto conserva los elementos posteriores en el mismo orden y deja intacto values. Filtrar por índice expresa una regla posicional: aunque el array se haya reordenado, se excluye el elemento de la posición 0, sea cual sea su valor.
Por ejemplo, con const values = ["red", "green", "blue"], tanto values.slice(1) como values.filter((item, index) => index > 0) producen un array nuevo con ["green", "blue"], mientras que values sigue siendo ["red", "green", "blue"].
Elige el método que mejor se adapte a lo que necesitas del array
- Usa
shift()cuando quieras modificar el array original y necesites el elemento eliminado como valor individual. - Usa
splice(0, 1)cuando quieras modificar el original y te resulte útil recibir los elementos eliminados en un array; también puedes ajustar el índice y la cantidad para eliminar elementos de otra posición. - Usa
slice(1)cuando quieras un array nuevo con todos los elementos posteriores al primero. - Usa
filter()cuando los elementos que quieras conservar dependan de una condición; basta con una condición basada en el índice para omitir la primera posición.
La decisión principal es si otro código todavía necesita el array original. Los métodos que lo modifican actualizan ese array compartido, por lo que cualquier referencia a él observa el cambio. Los métodos que no lo modifican dejan disponible el array original y devuelven un resultado separado. Los cuatro métodos conservan el orden relativo de los elementos que mantienen.