arrays - eliminar elementos de un array javascript - ¿Cómo puedo eliminar un elemento específico de una matriz?

array de objetos javascript / javascript

Tengo una matriz de números y estoy usando el método .push() para agregarle elementos.

Estoy buscando el equivalente a algo como:

array.remove(number);

Melanie



Answer #1

No es necesario utilizar indexOf o splice . Sin embargo, funciona mejor si solo desea eliminar una aparición de un elemento.

Buscar y mover (mover):

function move(arr, val) {
  var j = 0;
  for (var i = 0, l = arr.length; i < l; i++) {
    if (arr[i] !== val) {
      arr[j++] = arr[i];
    }
  }
  arr.length = j;
}
function indexof(arr, val) {
  var i;
  while ((i = arr.indexOf(val)) != -1) {
    arr.splice(i, 1);
  }
}
function splice(arr, val) {
  for (var i = arr.length; i--;) {
    if (arr[i] === val) {
      arr.splice(i, 1);
    }
  }
}

indexof es aproximadamente 10 veces más lento que move. Incluso si se mejora al eliminar la llamada a indexOf en el empalme, funciona mucho peor que move.

indexof es aproximadamente 10 veces más lento que move. Incluso si se mejora al eliminar la llamada a indexOf en el empalme, funciona mucho peor que move.

Remove all occurrences:
    move 0.0048 ms
    indexof 0.0463 ms
    splice 0.0359 ms

Remove first occurrence:
    move_one 0.0041 ms
    indexof_one 0.0021 ms