Remover Itens De Matrizes JavaScript

JavaScript matrizes permitem-lhe os valores do grupo e iterar sobre eles. Você pode adicionar e remover elementos de array de diferentes maneiras. Infelizmente não há uma simples matriz.remover o método.

então, como você remove um elemento de um array JavaScript?,

em vez de um método de delete, o array JavaScript tem uma variedade de maneiras que você pode limpar os valores de array.

Você pode remover elementos do final de uma matriz usando pop, do início usando shift, ou do meio usando splice. O método JavaScript Array Filter para criar um novo array com itens desejados, uma forma mais avançada de remover elementos indesejados.,licitly Remova os Elementos de um Array Usando o Operador Delete

  • Limpar ou Redefinir uma Matriz de JavaScript
  • Resumo
  • Existem diferentes métodos e técnicas que você pode usar para remover elementos de matrizes JavaScript:

    • pop – Remove o Final de um Array
    • shift – Remove o início de um Array
    • splice – remove a partir de um determinado índice de Matriz
    • filtro – permite que você programaticamente remover elementos de uma Matriz

    Você também vai aprender algumas outras maneiras que você pode remover elementos de uma matriz, que pode não ser tão óbvio, como com LoDash.,

    removendo elementos do fim de um Array JavaScript

    os elementos do Array JavaScript podem ser removidos do fim de um array definindo a propriedade do comprimento para um valor inferior ao valor atual. Qualquer elemento cujo índice seja maior ou igual ao novo comprimento será removido.

     var ar = ; ar.length = 4; // set length to remove elements console.log( ar ); // 

    o método pop remove o último elemento da lista, devolve esse elemento e actualiza a propriedade do comprimento. O método pop modifica o array no qual ele é invocado, isto significa ao contrário de usar excluir o último elemento é removido completamente e o comprimento do array reduzido.,

     var ar = ; ar.pop(); // returns 6 console.log( ar ); // 

    removendo elementos do início de um Array JavaScript

    Como você remove o primeiro elemento de um array JavaScript?

    o método shift funciona muito como o método pop, exceto que remove o primeiro elemento de um array JavaScript em vez do último.

    não existem parâmetros uma vez que o método shift apenas removeu o primeiro elemento array. Quando o elemento é removido, os restantes elementos são deslocados para baixo.,

     var ar = ; ar.shift(); // returns "zero" console.log( ar ); // 

    o método shift devolve o elemento que foi removido, actualiza os índices dos restantes elementos e actualiza a propriedade do comprimento. Modifica o array no qual é invocado.

    Se não houver elementos, ou o comprimento da matriz for 0, o método retorna indefinido.

    usando o Splice para remover elementos de Array em JavaScript

    o método splice pode ser usado para adicionar ou remover elementos de um array. O primeiro argumento especifica o local no qual começar a adicionar ou remover elementos. O segundo argumento especifica o número de elementos a remover., O terceiro e os argumentos subsequentes são opcionais; eles especificam elementos a serem adicionados à matriz.

    Aqui nós usamos o método de splice para remover dois elementos começando da posição três (índice zero):

     var arr = ; var removed = arr.splice(2,2); 

    um array contendo os elementos removidos é devolvido pelo método de splice. Você pode ver a matriz removida contém e a matriz original contém os valores restantes.

    o método splice também pode ser usado para remover uma gama de elementos de uma matriz.,

     var list = ; list.splice(0, 2); // Starting at index position 0, remove two elements and retains .

    a remover os itens da lista por valor, usando o Splice

    Se souber o valor que deseja remover de uma lista, poderá usar o método do splice. Primeiro você deve identificar o índice do item alvo. Você então usa o índice como o elemento inicial e remove apenas um elemento.

     var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); } } //=> 

    Este é um exemplo simples onde os elementos são inteiros. Se você tem uma série de objetos você precisaria de uma rotina mais sofisticada.

    isto funciona se só quiser remover um único item., Se você quiser remover vários itens que correspondem aos seus critérios, há uma falha.

    à medida que os itens são removidos da lista, o índice ainda aumenta e o próximo item após o seu valor correspondente ser ignorado.

    a solução simples é modificar o exemplo acima para decretar a variável de índice, de modo a não saltar o próximo item da lista.

     var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); i--; } } //=> 

    No exemplo modificado I adicionou 2 valores adicionais 5 à matriz. Eu também adicionei “i–;” depois da chamada da unidade.

    Agora, quando executar o ciclo, irá remover todos os itens correspondentes.,

    graças a Kristian Sletten por apontar o problema com o loop saltando o seguinte item.

    usando o método do filtro Array para remover itens pelo valor

    Ao contrário do método do splice, O filtro cria um novo array. o filter () não modifica o array no qual é chamado, mas devolve um novo array.

    filtro() tem um único parâmetro, um método de callback. O callback é despoletado como o método de filtro itera através dos elementos array. Ele vai passar três valores para o callback: o valor ou elemento atual, o índice da matriz atual e a matriz completa.,

    o método de callback deve retornar verdadeiro ou falso. É sua responsabilidade testar o valor (elemento) para ver se ele cumpre seus critérios. Se acontecer, podes voltar a ser verdadeiro. Elementos que retornam verdadeiros são adicionados ao novo array filtrado.

     var array = ; var filtered = array.filter(function(value, index, arr){ return value > 5; }); //filtered => //array => 

    deve notar que é devolvida uma nova lista contendo valores correspondentes. A matriz original não foi tocada. Eu acho isso útil porque eu muitas vezes quero reter uma fonte de dados original, mas recuperar subconjuntos baseados em diferentes conjuntos lógicos.,

    o método de remoção da matriz Lodash

    por vezes as bibliotecas de utilidade pública são a melhor maneira de resolver problemas mais complexos. O Lodash fornece um conjunto rico de métodos de manipulação de array, sendo um deles removido.

    O método Lodash remove funciona muito como o método array filter, mas de forma inversa. Ele não grava os valores originais da matriz, mas remove os elementos correspondentes. Ele retorna os elementos correspondentes como um novo array.

    var array = ;var evens = _.remove(array, function(n) { return n % 2 === 0;});console.log(array);// => console.log(evens);// => 

    Making a Remove Method

    As I mentionmed before, there is no native Array.remover o método., Lodash lodash método resolve este problema, mas você pode nem sempre querer usar Lodash. Isso não significa que você não pode criar um método de utilidade. John Resig deu – nos um modelo a seguir, no entanto ele estendeu o protótipo Array, o que é uma má ideia.

    em vez disso, criei um método de remoção de Array que pode ser adicionado a uma biblioteca auxiliar ou utilitário. Como o método de remoção Lodash, o primeiro parâmetro é o array de destino. Usa Array.filtrar para devolver elementos que não correspondam a um valor.

    este método é simples, ele assume valores simples como números ou strings., Você poderia modificar este método para usar um método customcomparison, mas eu acho que seria mais fácil apenas usar o método do filtro diretamente.

    Remove explicitamente os elementos da matriz usando o operador de remoção

    pode remover elementos da matriz específicos usando o operador de remoção:

     var ar = ; delete ar; // delete element with index 4 console.log( ar ); // alert( ar ); // 1,2,3,4,,6

    Usando o operador de remoção não afecta a propriedade do comprimento. Também não afecta os índices dos elementos subsequentes. O array torna-se esparso, o que é uma maneira chique de dizer que o item excluído não é removido, mas torna-se indefinido. Comparar a utilização de apagar com o método de cálculo descrito em baixo.,

    o operador de delete é projetado para remover propriedades de objetos JavaScript, que arrays são objetos.

    A razão pela qual o elemento não é realmente removido do array é que o operador de delete é mais sobre libertar memória do que excluir um elemento. A memória é libertada quando não há mais referências ao valor.

    limpar ou reiniciar um Array de JavaScript

    e se quiser esvaziar um array inteiro e simplesmente despejar todos os seus elementos?

    Existem algumas técnicas que você pode usar para criar um array vazio ou novo.,

    a técnica mais simples e mais rápida é definir uma variável array para um array vazio:

    var ar = ;//do stuffar = ;//a new, empty array!

    o problema que isto pode criar é quando você tem referências à variável. As referências a esta variável não mudarão, eles ainda manterão os valores da matriz original. Isto pode, naturalmente, criar um bug🐛.

    Este é um exemplo simplificado deste cenário:

    var arr1 = ;var arr2 = arr1; // Reference arr1 by another variable arr1 = ; console.log(arr2); // Output 

    um truque simples para limpar um array é definir a sua propriedade de comprimento para 0.,

    var ar = ;console.log(ar); // Output ar.length = 0;console.log(ar); // Output 

    outro, tipo de técnica não natural, é usar o método de splice, passando o comprimento do array como o segundo parâmetro. Isto irá devolver uma cópia dos elementos originais, o que pode ser útil para o seu cenário.

    var ar = ;console.log(ar); // Output ar.splice(0, ar.length);console.log(ar); // Output 

    As duas últimas técnicas não criam um novo array, mas mudam os elementos do array. Isto significa que as referências também devem ser atualizadas.

    Há outra maneira, usando um laço while. Parece um pouco estranho para mim, mas ao mesmo tempo parece chique, para que possa impressionar alguns amigos!,

    var ar = ;console.log(ar); // Output while (ar.length) { ar.pop(); }console.log(ar); // Output 

    não é uma maneira que eu faria para limpar um array JavaScript, mas ele funciona e é legível. Alguns testes de desempenho também mostraram que esta é a técnica mais rápida, então talvez seja melhor do que eu originalmente pensei!

    resumo

    remover itens da lista de JavaScript é importante para gerir os seus dados. Não há um único método’ remover ‘ disponível, mas existem diferentes métodos e técnicas que você pode usar para purgar itens array indesejados.este artigo reviu estes métodos e o modo como podem ser utilizados., Você também viu como criar um método auxiliar que torna a remoção de itens de um array um pouco mais fácil e consistente.graças a Rob Sherwood por apontar alguns erros sintáticos!