quinta-feira, novembro 28, 2024
Home Programação Javascript Remover um ou mais itens de um Array

Remover um ou mais itens de um Array

Neste artigo exibiremos algumas formas de como remover um ou mais itens do Array

Slice

Retorna uma cópia de uma parte do array em um novo array. Pode ser usado para excluir um item específico se você especificar o índice inicial e final desejados.

let arr = [1, 2, 3, 4];
arr = arr.slice(0, 2).concat(arr.slice(3));
console.log(arr); // Output: [1, 2, 4]

 

Splice

Altera o array original removendo itens específicos e/ou adicionando novos itens.

let arr = [1, 2, 3, 4];
arr.splice(2, 1);
console.log(arr); // Output: [1, 2, 4]

 

Filter

Retorna um novo array com todos os elementos que passam no teste implementado pela função fornecida.

let arr = [1, 2, 3, 4];
arr = arr.filter(item => item !== 3);
console.log(arr); // Output: [1, 2, 4]

 

indexOf

Retorna o primeiro índice do valor especificado, caso ele exista no array. Pode ser usado para verificar se um item existe no array antes de excluí-lo com splice().

let arr = [1, 2, 3, 4];
let index = arr.indexOf(3);
if (index > -1) {
  arr.splice(index, 1);
}
console.log(arr); // Output: [1, 2, 4]

 

Agora exibiremos algumas possibilidades de funções úteis para uso

Uma função genérica que remove um item específico de um array em JavaScript:

function removeItem(array, item) {
  let index = array.indexOf(item);
  if (index !== -1) {
    array.splice(index, 1);
  }
  return array;
}

let arr = [1, 2, 3, 4];
arr = removeItem(arr, 3);
console.log(arr); // Output: [1, 2, 4]

A função removeItem aceita dois argumentos: o primeiro é o array e o segundo é o item a ser removido. Em seguida, a função usa o método indexOf para verificar se o item existe no array. Se existir, o método splice é usado para remover o item. Finalmente, o array modificado é retornado.

Uma variação da função acima, porém com a possibilidade de remover o item do início, ou do fim do array:

function removeItem(array, item, removeFromEnd) {
  let index;
  if (removeFromEnd) {
    index = array.lastIndexOf(item);
  } else {
    index = array.indexOf(item);
  }

  if (index !== -1) {
    array.splice(index, 1);
  }
  return array;
}

let arr = [1, 2, 3, 4, 3];
arr = removeItem(arr, 3, true);
console.log(arr); // Output: [1, 2, 4, 3]
arr = removeItem(arr, 3, false);
console.log(arr); // Output: [2, 4, 3]

A função agora aceita um terceiro argumento opcional, removeFromEnd, que indica se o item deve ser removido do final (true) ou do início (false) do array. Se removeFromEnd for true, a função usa o método lastIndexOf para encontrar o índice do item a ser removido. Caso contrário, a função usa o método indexOf como antes. O item é removido usando o método splice da mesma maneira.

E por fim uma última variação da função removeItem que permite remover um ou mais itens do início ou do final do array:
function removeItens(array, itens, removeFromEnd) {
  let indices = [];
  for (let i = 0; i < itens.length; i++) {
    let item = itens[i];
    let index;
    if (removeFromEnd) {
      index = array.lastIndexOf(item);
    } else {
      index = array.indexOf(item);
    }
    while (index !== -1) {
      indices.push(index);
      if (removeFromEnd) {
        index = array.lastIndexOf(item, index - 1);
      } else {
        index = array.indexOf(item, index + 1);
      }
    }
  }

  for (let i = indices.length - 1; i >= 0; i--) {
    array.splice(indices[i], 1);
  }
  return array;
}

let arr = [1, 2, 3, 4, 3];
arr = removeItens(arr, [3], true);
console.log(arr); // Output: [1, 2, 4]
arr = removeItens(arr, [4, 2], false);
console.log(arr); // Output: [1]

A função agora aceita um segundo argumento, itens, que é um array de itens a serem removidos. O terceiro argumento removeFromEnd ainda indica se os itens devem ser removidos do final (true) ou do início (false) do array. A função usa um loop para percorrer o array itens e encontrar todas as ocorrências de cada item. Em seguida, um segundo loop é usado para remover os itens usando o método splice, começando pelo último índice para preservar os índices corretos. Finalmente, o array modificado é retornado.

Em detalhes a última função

A função removeItens remove um ou mais itens de um array em JavaScript. A função tem três argumentos: o primeiro é o array que deseja-se modificar, o segundo é um array de itens a serem removidos e o terceiro é uma flag booleana que indica se os itens devem ser removidos do início (false) ou do final (true) do array.

A função começa definindo uma variável vazia indices que armazenará todos os índices dos itens que serão removidos. Em seguida, o primeiro loop percorre o array de itens a serem removidos. Dentro do loop, a função usa o método indexOf ou lastIndexOf para encontrar o primeiro ou último índice, respectivamente, do item atual no array de origem.

O segundo loop interno, chamado while, é usado para encontrar todas as ocorrências do item atual no array de origem. Se o item for encontrado, o índice é adicionado à variável indices e a busca é continuada a partir do próximo índice (usando indexOf) ou do índice anterior (usando lastIndexOf).

Após o primeiro loop, todos os índices dos itens a serem removidos foram adicionados à variável indices. O terceiro loop é usado para remover os itens do array, começando pelo último índice. Isso é feito para preservar os índices corretos, já que remover um item muda a posição dos itens subsequentes no array.

Finalmente, a função retorna o array modificado.

DEIXE UMA RESPOSTA

Por favor entre com seu comentário
Por favor insira o seu nome aqui

Últimos artigos

Entenda o que é refatoração de código

Porque a refatoração de código é tão importante na programação Melhora a qualidade do código: A refatoração ajuda a melhorar a qualidade do código,...

O que são Padrões de Projeto de Software

O que são Padrões de Projeto de Software Design patterns, ou padrões de projeto de software, são soluções comprovadas e testadas para problemas comuns que...

Winston NodeJS Logger

O que são logs de uma aplicação? Basicamente são registros detalhados e estruturados dos eventos ocorridos em sua execução. Eles incluem informações sobre erros, operações...

Vantagens e Desvantagens no uso da API Date e Intl

Antes de mais nada, qual a importância de saber manipular datas na programação É importante saber manipular os objetos Date e Intl em JavaScript porque...

Entendendo biblioteca de requisições HTTP Axios

Primeiramente o que é AXIOS e sua finalidade Axios é uma biblioteca JavaScript que facilita a realização de requisições HTTP (como GET, POST, PUT, DELETE,...