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?
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.