JS: Arrays
Teoría: Eliminar elementos de un array
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:
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
Veamos cómo podemos implementar una función compact() que haga esto de manera efectiva:
¿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.