En JavaScript, no existe una forma directa y sencilla de eliminar un elemento de un array. ☹️ Algunas soluciones pueden parecer intuitivas, como la instrucción delete, pero tienen efectos inesperados.
⏬ Veamos un ejemplo:
const numbers = [1, 10];
delete numbers[0];
console.log(numbers);
// => [ <1 empty item>, 10 ]
Aquí, el valor en la posición 0 del array desaparece, pero el espacio sigue existiendo. Esto puede causar problemas cuando queremos recorrer el array o realizar operaciones con él.
Una alternativa común es utilizar el método splice, pero tampoco es la opción más intuitiva cuando necesitamos eliminar elementos bajo ciertas condiciones.
La mejor opción: crear un nuevo array
Un caso muy común es el de eliminar los valores null, lo que se conoce como compactación.
Veamos cómo podemos implementar una función compact() que haga esto de manera efectiva:
const compact = (coll) => {
const result = []; // Crear un nuevo array vacío
for (const item of coll) {
if (item !== null) {
result.push(item); // Agregar solo los elementos que no son null
}
}
return result; // Retornar el nuevo array
};
console.log(compact([0, 1, false, null, true, 'wow', null]));
// => [ 0, 1, false, true, 'wow' ]
console.log(compact([]));
// => []
¿Qué está pasando aquí?
- Creamos un nuevo array vacío llamado
result. - Recorremos el array original (
coll) y verificamos cada elemento. - Si el elemento no es
null, lo agregamos al arrayresult. - Finalmente, retornamos
result, que ya no contiene los valoresnull.
Ventajas de este enfoque
Este método tiene varias ventajas:
✅ No modifica el array original: Siempre podemos consultarlo en caso de errores o para depuración.
✅ Evita problemas inesperados con índices vacíos o modificaciones peligrosas del array.
✅ Es más claro y fácil de leer, ya que seguimos un patrón lógico paso a paso.
Este tipo de operación se conoce como filtrado, porque estamos eliminando elementos que no cumplen una determinada condición.
Resumen
deleteno elimina un elemento completamente, solo su valor.- Modificar un array directamente puede llevar a errores y situaciones confusas.
- Una mejor alternativa es construir un nuevo array sin los elementos no deseados.
- La operación de eliminar elementos bajo cierta condición se llama filtrado.
- Separar los datos en un nuevo array facilita la depuración y mejora la claridad del código.
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.