Eu tenho uma matriz que eu criei no TypeScript e tem uma propriedade que eu uso como chave. Se eu tiver essa chave, como posso remover um item dela?
arrays
typescript
collections
Tim Almond
fonte
fonte
var index: number = myArray.indexOf(key, 0);
indexOf
retorna anumber
?index
mais de uma vez o local e um desses locais (splice
) deseja ver um número ou você receberá um erro. Atualmente, o compilador não pode impedir que você cometa erros por lá.var index = myArray.findIndex(x => x.prop==key.prop);
.delete myArr[2]
exclui literalmente a propriedade2
demyArr
, que também é diferente demyArr[2] = undefined
. A moral desta história é apenas usarsplice
para esta tarefa, porque é uma maneira segura de obter o efeito desejado sem confundir efeitos colaterais.Se a matriz for do tipo de objetos, a maneira mais simples é
fonte
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object)[0];
deleteById(id: string) { this.data = this.data.filter(d => d.id !== id); }
apenas uma palavra de aviso, se os IDs não são exclusivos você irá remover todos com o mesmoid
Com o ES6, você pode usar este código:
fonte
É a minha solução para isso:
fonte
Você pode usar o
splice
método em uma matriz para remover os elementos.por exemplo, se você tiver uma matriz com o nome,
arr
use o seguinte:então aqui o elemento com o índice 2 será o ponto de partida e o argumento 2 determinará quantos elementos serão excluídos.
Se você deseja excluir o último elemento da matriz nomeada
arr
, faça o seguinte:Isso retornará arr com o último elemento excluído.
Exemplo:
fonte
deixar departamentos é uma matriz. Você deseja remover um item dessa matriz.
fonte
Aqui está um liner simples para remover um objeto por propriedade de uma matriz de objetos.
ou
fonte
Responder usando o operador de propagação TypeScript (...)
fonte
Mais uma solução usando o Typecript:
fonte
Use isso, se você precisar remover um determinado objeto de uma matriz e quiser ter certeza do seguinte:
fonte
Só queria adicionar o método de extensão para uma matriz.
fonte