Eu tenho:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
Eu quero ser capaz de fazer algo como:
array.remove("B");
mas não há função de remoção. Como eu faço isso?
javascript
arrays
Rolando
fonte
fonte
.indexOf()
e.splice()
deve fazer o truque. Ou talvez, alternativamente.filter()
,.Respostas:
Na verdade, estou atualizando esse segmento com uma solução de 1 linha mais recente:
A idéia é basicamente filtrar a matriz, selecionando todos os elementos diferentes do elemento que você deseja remover.
Nota: removerá todas as ocorrências.
EDITAR:
Se você deseja remover apenas a primeira ocorrência:
fonte
Percorra a lista na ordem inversa e use o
.splice
métodoA ordem inversa é importante quando todas as ocorrências do termo de pesquisa precisam ser removidas. Caso contrário, o contador aumentará e você pulará elementos.
Quando apenas a primeira ocorrência tiver que ser removida, o seguinte também funcionará:
fonte
0
não é automaticamente mais rápida como é, digamos, C. Contanto que você armazene em cache o limite, é claro, o que complicaria as coisas se você continuar após a primeira partida (mas não se parar).Lista de um forros
Vamos resolver este problema para esta matriz:
1. Remova apenas o primeiro: Use Se você tiver certeza de que o item existe
2. Remova apenas o último: Use Se você tiver certeza de que o item existe
3. Remova todas as ocorrências:
fonte
DEMO
Você precisa encontrar o local do que está procurando
.indexOf()
e removê-lo com.splice()
Isso cuidará de todas as ocorrências.
fonte
.indexOf()
você pode adicioná- lo ao seu arquivo javascript.Uncaught ReferenceError: array is not defined
. O que está errado?.indexOf()
um pouco mais. Se você passarfound
como o segundo argumento para a.indexOf()
chamada dentro do laço while , os elementos na matriz que já foram verificados e acabou não sendo iguais não são verificados novamente:found = arr.indexOf(what, found);
Simplesmente
fonte
-1
se nada for encontrado e oops, splice excluirá 1 elemento do final da matrizSolução simples (ES6)
Se você não possui elemento duplicado
Demonstração on-line (violino)
fonte
Você tem que escrever o seu próprio remover. Você pode percorrer a matriz, pegar o índice do item que deseja remover e usá
splice
-lo para removê-lo.Como alternativa, você pode criar uma nova matriz, fazer um loop sobre a matriz atual e, se o objeto atual não corresponder ao que você deseja remover, coloque-o em uma nova matriz.
fonte
usar:
Isso remove um item da matriz, iniciando no índice 2 (terceiro item)
fonte
array.splice(2,1)
que remove 1 item no índice 2 da matriz. verifique https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/splice para obter mais detalhesou você pode usar:
O changesArray conterá o valor sem 'B'
fonte
use array.splice
Fonte: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
fonte
array
esplice
deve ser um ponto.