Tengo una matriz que he creado en TypeScript y tiene una propiedad que uso como clave. Si tengo esa clave, ¿cómo puedo eliminar un elemento?
arrays
typescript
collections
Tim Almond
fuente
fuente
var index: number = myArray.indexOf(key, 0);
indexOf
devuelve anumber
?index
en más de un lugar y uno de esos lugares (splice
) quiere ver un número o recibirá un error. Actualmente el compilador no puede evitar que cometas errores allí.var index = myArray.findIndex(x => x.prop==key.prop);
.delete myArr[2]
literalmente elimina la propiedad2
demyArr
, que también es diferente demyArr[2] = undefined
. La moraleja de esta historia es usarlasplice
para esta tarea porque es una forma segura de obtener el efecto deseado sin confundir los efectos secundarios.Si la matriz es un tipo de objetos, entonces la forma más simple es
fuente
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object)[0];
deleteById(id: string) { this.data = this.data.filter(d => d.id !== id); }
Solo una palabra de advertencia, si los ID no son únicos, los eliminará todos con el mismoid
Con ES6 puede usar este código:
fuente
Es mi solución para eso:
fuente
Puedes usar el
splice
método en una matriz para eliminar los elementos.por ejemplo, si tiene una matriz con el nombre,
arr
use lo siguiente:así que aquí el elemento con el índice 2 será el punto de partida y el argumento 2 determinará cuántos elementos se eliminarán.
Si desea eliminar el último elemento de la matriz nombrada
arr
, haga esto:Esto devolverá arr con el último elemento eliminado.
Ejemplo:
fuente
dejar departamentos es una matriz. Desea eliminar un elemento de esta matriz.
fuente
Aquí hay un revestimiento simple para eliminar un objeto por propiedad de una matriz de objetos.
o
fuente
Responda utilizando el operador de propagación TypeScript (...)
fuente
Una solución más usando el mecanografiado:
fuente
Use esto, si necesita eliminar un objeto determinado de una matriz y desea estar seguro de lo siguiente:
fuente
Solo quería agregar un método de extensión para una matriz.
fuente