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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?
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.