var arr = [1,2,3,5,6];
Remova o primeiro elemento
Quero remover o primeiro elemento da matriz para que ele se torne:
var arr = [2,3,5,6];
Remova o segundo elemento
Para estender essa pergunta, e se eu quiser remover o segundo elemento da matriz para que ele se torne:
var arr = [1,3,5,6];
javascript
arrays
user198729
fonte
fonte
slice(start, end)
não 'how_many_to_remove'splice
nãoslice
acho.Respostas:
Para uma solução mais flexível, use a
splice()
função Ele permite remover qualquer item em uma matriz com base no valor do índice:fonte
arr.splice(1,1)
para o segundo elemento.splice()
maisshift()
porque é mais flexível. Talvez eu queira fazer algo diferente no futuro, e nem sempre eu quero remover apenas um elemento, ou mesmo o primeiro.shift()
é ideal para a sua situação.shift()
remove o primeiro elemento de uma matriz e retorna esse elemento. Este método altera o comprimento da matriz.fonte
shift()
parasplice(..., ...)
uma vez que é muito mais explícita e direta.shift
é mais rápido a menos que você está splicing grandes listas jsperf.com/splice-vs-shift3 e jsperf.com/splice-vs-shift2O
Array.prototype.shift
método remove o primeiro elemento de uma matriz e o retorna. Modifica a matriz original.fonte
não é destrutivo, a emenda e a mudança modificarão sua matriz original
fonte
Escreveu um pequeno artigo sobre como inserir e excluir elementos em posições arbitrárias em matrizes Javascript.
Aqui está o pequeno trecho para remover um elemento de qualquer posição. Isso estende a classe Array em Javascript e adiciona o método remove (index).
Portanto, para remover o primeiro item do seu exemplo, chame arr.remove ():
Para remover o segundo item,
Aqui está um pequeno artigo com métodos de inserção e exclusão para a classe Array.
Essencialmente, isso não é diferente das outras respostas usando emenda, mas o nome
splice
não é intuitivo e, se você tiver essa chamada em todo o aplicativo, isso dificulta a leitura do código.fonte
Talvez algo parecido com isto:
fonte
Outras respostas são grandes, eu só queria acrescentar uma solução alternativa com
ES6
função de matriz:filter
.filter()
cria uma nova matriz com elementos que se enquadram em um determinado critério a partir de uma matriz existente.Portanto, você pode usá-lo facilmente para remover itens que não atendem aos critérios. Os benefícios desta função são que você pode usá-la em uma matriz complexa, não apenas em seqüência e número.
Remova o primeiro elemento :
Remova o segundo elemento :
Remova o elemento ímpar :
Remover itens que não estão em estoque
fonte
Você pode usar o recurso de atribuição de reestruturação do ES6 com um operador restante. Uma vírgula indica onde você deseja remover o elemento e o operador restante (... arr) para fornecer os elementos restantes da matriz.
fonte
Array.splice()
tem a propriedade interessante de que não se pode usá-lo para remover o primeiro elemento. Então, precisamos recorrer afonte
Solução datilografada que não altera a matriz original
fonte
Existem várias maneiras de remover um elemento de uma matriz. Deixe-me apontar as opções mais usadas abaixo. Estou escrevendo esta resposta porque não consegui encontrar um motivo adequado para o que usar em todas essas opções. A resposta para a pergunta é a opção 3 ( Emenda () ).
1) SHIFT () - Remova o primeiro elemento da matriz original e retorne o primeiro elemento
Consulte a referência para Array.prototype.shift () . Use isso somente se desejar remover o primeiro elemento e somente se estiver de acordo em alterar a matriz original.
2) SLICE () - Retorna uma cópia da matriz, separada por um índice inicial e um índice final
Consulte a referência para Array.prototype.slice () . Você não pode remover um elemento específico desta opção. Você pode cortar apenas a matriz existente e obter uma parte contínua da matriz. É como cortar a matriz dos índices que você especificar. A matriz original não é afetada.
3) SPLICE () - Altere o conteúdo da matriz removendo ou substituindo elementos em índices específicos.
Consulte a referência para Array.prototype.splice () . O método splice () altera o conteúdo de uma matriz removendo ou substituindo elementos existentes e / ou adicionando novos elementos no local. Retorna uma matriz atualizada. A matriz original é atualizada.
fonte
Você também pode fazer isso com reduzir:
fonte