JavaScript: Quitar Un Elemento Específico de un Array Facilmente



Suponiendo que tenemos un array de enteros

var array = [2, 5, 9];

y queremos quitar un elemento específico de la lista, supongamos que es el 5, lo primero que tenemos que hacer es encontrar el índice del elemento que queremos quitar, usando:

var index = array.indexOf(5);
(*)

Seguidamente, podemos quitar el elemento usando:

if (index > -1) {
    array.splice(index, 1);
}

El segundo parámetro de splice es el número de elementos a quitar. La función modifica el array en el lugar y elimina solo la primera instancia del elemento en el array, es decir, si queremos eliminar todas las instancias de determinado elemento, se debe introducir splice dentro de un bucle, como for o while:

function remove(arr, item) {
      for(var i = arr.length; i--;) {
          if(arr[i] === item) {
              arr.splice(i, 1);
          }
      }
  }

o también:

function remove(arr, item) {
   var i;
   while((i = arr.indexOf(item)) !== -1) {
     arr.splice(i, 1);
   }
}
(*)

(*) Cabe destacar que la función indexOf no es soportada en IE<=8.

No hay comentarios:

Publicar un comentario