¿Cómo puedo eliminar un elemento específico de una matriz?

2022-04-07 19:12:42

¿Cómo elimino un valor específico de una matriz? Algo como:

array.remove(value); // elimina todos los elementos con valor

Tengo que usar core JavaScript. Los marcos no están permitidos.

- Walker

Source
zh
Responder


10475
  • del elemento de matriz que desea eliminar usando indexOf, y luego elimine ese índice con empalme.

    El método splice() cambia el contenido de una matriz eliminando elementos existentes y/o agregando nuevos elementos.

    const array = [2, 5, 9];
    
    consola.log(matriz);
    
    const índice = array.indexOf(5);
    si (índice > -1) {
      array.splice(índice, 1); // 2do parámetro significa eliminar solo un elemento
    }
    
    // matriz = [2, 9]
    consola.log(matriz); 
    es el número de elementos a eliminar. Tenga en cuenta que splice modifica la matriz en su lugar y devuelve una nueva matriz que contiene los elementos que se han eliminado.


    de [2,5,9,1,5,8,5]), mientras que la la segunda función elimina todas las apariciones:

    función removeItemOnce(arr, valor) {
      índice var = arr.indexOf(valor);
      si (índice > -1) {
        arr.splice(índice, 1);
      }
      retorno arr;
    }
    
    función removeItemAll(arr, valor) {
      var i = 0;
      while (i < arr.longitud) {
        if (arr[i] === valor) {
          arr.empalme(i, 1);
        } demás {
          ++yo;
        }
      }
      retorno arr;
    }
    // uso
    consola.log(removeItemOnce([2,5,9,1,5,8,5], 5))
    consola.log(removeItemAll([2,5,9,1,5,8,5], 5))

    En TypeScript, estas funciones pueden permanecer seguras con un parámetro de tipo:

    función removeItem(arr: Array, value: T): Array {
      índice const = arr.indexOf(valor);
      si (índice > -1) {
        arr.splice(índice, 1);
      }
      retorno arr;
    }