Cómo eliminar un elemento específico de un array en JavaScript: 5 mejores formas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cómo eliminar un elemento específico de un array en JavaScript: guía detallada con ejemplos

\n\n

¡Hola, colega desarrollador! Si alguna vez has escrito en JavaScript, seguro te has encontrado con la situación en la que necesitas eliminar un elemento específico de un array. Parece una tarea simple, pero los principiantes (e incluso programadores experimentados) a menudo se pierden: ¿splice? ¿filter? ¿O quizás delete? ¿O tal vez escribir tu propia solución personalizada?

\n\n

La pregunta "How can I remove a specific item from an array in JavaScript?" es una de las más populares en Stack Overflow con millones de visitas. Y no es casualidad: los arrays son la base del trabajo con datos en JS, y saber cómo limpiarlos correctamente es una habilidad imprescindible.

\n\n

En este artículo, analizaremos 5 métodos probados para eliminar un elemento de un array en JavaScript. Descubrirás qué método es más rápido, cuál es más limpio para leer y en qué situaciones es mejor aplicar cada uno. ¡Vamos allá!

\n\n

1. Método splice() — el clásico

\n\n

Empecemos con la forma más popular: splice(). Este método modifica el array original, eliminando, reemplazando o agregando elementos. Para eliminar un solo elemento, la sintaxis es la siguiente:

\n\n
array.splice(index, 1);
\n\n

El primer parámetro es el índice del elemento a eliminar, el segundo es la cantidad de elementos a eliminar (1 significa que eliminamos solo uno).

\n\n

Ejemplo:

\n\n
let fruits = ['manzana', 'plátano', 'pera', 'naranja'];\n\n// Eliminamos 'plátano' (índice 1)\nfruits.splice(1, 1);\n\nconsole.log(fruits); // ['manzana', 'pera', 'naranja']
\n\n

Importante: splice() modifica el array original. Si necesitas una copia, primero haz let copy = [...array].

\n\n

Cuándo usarlo: cuando sabes exactamente el índice del elemento. Ideal para eliminar por posición.

\n\n

2. Combinación de indexOf() + splice() — eliminación por valor

\n\n

¿Y qué hacemos si no conocemos el índice, pero sí el valor? Aquí nos ayuda indexOf() — encuentra el primer índice del elemento con el valor dado (o devuelve -1 si el elemento no existe).

\n\n
let numbers = [10, 20, 30, 40, 50];\nlet itemToRemove = 30;\n\nlet index = numbers.indexOf(itemToRemove);\nif (index !== -1) {\n    numbers.splice(index, 1);\n}\n\nconsole.log(numbers); // [10, 20, 40, 50]
\n\n

Importante: este método elimina solo la primera aparición. Si hay varios elementos iguales en el array, los demás permanecen.

\n\n

Cuándo usarlo: cuando necesitas eliminar un elemento específico del array por su valor y estás seguro de que el elemento aparece una sola vez.

\n\n

3. Método filter() — para los que aman la limpieza

\n\n

El método filter() es mi favorito personal. No modifica el array original, sino que crea uno nuevo que contiene solo los elementos que pasan la prueba. Esto hace que el código sea más predecible y seguro.

\n\n
let numbers = [10, 20, 30, 40, 50];\nlet itemToRemove = 30;\n\nlet filteredNumbers = numbers.filter(num => num !== itemToRemove);\n\nconsole.log(filteredNumbers); // [10, 20, 40, 50]\nconsole.log(numbers); // [10, 20, 30, 40, 50] (el original no cambió)
\n\n

Ventaja: elimina todas las apariciones del valor. Si en el array había dos números 30, ambos desaparecerán.

\n\n

Desventaja: crea un nuevo array, lo que puede ser menos eficiente al trabajar con arrays enormes (pero para el 99% de las tareas esto no es crítico).

\n\n

Cuándo usarlo: cuando necesitas inmutabilidad (no modificar los datos originales) o cuando necesitas eliminar todos los duplicados.

\n\n

4. Operador delete — peligroso pero rápido

\n\n

El operador delete elimina una propiedad de un objeto. Como un array también es un objeto, se puede aplicar a un array. Pero ten cuidado: deja un "hueco" (un elemento vacío).

\n\n
let fruits = ['manzana', 'plátano', 'pera'];                

Blogs

Book Recommendations