Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Eliminar elementos de un array JS: Arrays

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

Cuando se trata de eliminar elementos de un array, una buena práctica es no modificar el array original, sino construir uno nuevo con los elementos que queremos conservar.

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 array result.
  • Finalmente, retornamos result, que ya no contiene los valores null.

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

  • delete no 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.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY