Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] Remover uma posição específica no ARRAY

Em JavaScript dá para remover um elemento do array usando o pop(), mas pelo que testei ele remove apenas o último elemento do array, e para remover uma posição específica? Como seria?

3 respostas
solução!

Oi Mariana

Alguns exemplos


// length - remove os últimos 3 elementos
let array = [0, 1, 2, 3, 4, 5];    
array.length = array.length - 3; 
console.log( array ); // [0, 1, 2]

// pop - remove o último elemento
let array = [0, 1, 2, 3, 4, 5];    
array.pop(); 
console.log( array ); // [0, 1, 2, 3, 4]

// shift - remove o primeiro elemento
array = [0, 1, 2, 3, 4, 5];
array.shift(); 
console.log( array ); // [1, 2, 3, 4, 5];

// splice - remove 1 elemento de índice 2
array = [0, 1, 2, 3, 4 ,5];
array.splice(2,1); 
console.log( array ); // [0, 1, 3, 4, 5]

// splice - remove 3 elementos a parti do índice 1 
array = [0, 1, 2, 3, 4 ,5];
array.splice(1,3); 
console.log( array ); // [0, 4, 5]

// filter - cria um array com valores menores que 5
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
filtered = array.filter( value => value < 5);
console.log( filtered ); // [0, 1, 2, 3, 4]

// filter - cria um array com valores pares
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
filtered = array.filter( value => value % 2 === 0);
console.log( filtered ); // [0, 2, 4, 6, 8]

Ps.: Existem outras formas de remover elementos de um Array

Obrigadaa, deu certo aqui.

Para remover um elemento específico de um array primeiramente devemos encontrar seu index com a função indexOf e para isso devemos passar como argumento o elemento que queremos remover, veja o exemplo a seguir no qual removo o item 'morango' do array animais:

const animais = ['lobo', 'coruja', 'gaviao', 'tigre', 'morango', 'urso']

console.log(animais)
// animais = [ 'lobo', 'coruja', 'gaviao', 'tigre', 'morango', 'urso' ]

const index = animais.indexOf('morango') 
if (index > -1) {
  animais.splice(index, 1);
}

console.log(animais); 
// animais = [ 'lobo', 'coruja', 'gaviao', 'tigre', 'urso' ]

Sendo que indexOf retorna o primeiro índice em que o elemento pode ser encontrado no array, retorna -1 caso o mesmo não esteja presente. Então na condicional if (index > -1) caso o valor de index ser maior que -1, significa que o elemento/item foi encontrado e então a função splice será executada, esta função altera o conteúdo de uma lista, pode adicionar novos elementos e/ou remover elementos. Os parâmetros passados para esta função foram index que é o índice o qual deve iniciar a alterar a lista e deleteCount que neste caso foi passado como argumento o número 1, que indica o número de elementos que devem ser removidos, neste caso só queremos remover um elemento.

A função splice também pode ser utilizada para alterar valores de dentro de um array e aceita mais argumentos, mas no seu caso para deletar um item/elemento de um array esse é um jeito mais intuitivo e fácil de entender, basicamente procuramos o a posição do item a ser removido com a função indexOf, que retornará o índice desse elemento no array caso exista, e depois deletamos com a função splice o item que esteja na posição do índice.