Neste artigo você vai aprender a como filtrar array por outro array em JS, utilizando os elementos de um para filtrar o outro array
Fala programador(a), beleza? Bora aprender mais sobre filtrar arrays com JavaScript!
Hoje vamos falar sobre como filtrar um array a partir de elementos de outro array em JavaScript.
Isso pode ser útil em muitas situações, como quando queremos remover elementos duplicados de um array ou quando queremos selecionar apenas alguns elementos de um array de acordo com algum critério específico.
Existem algumas formas de fazer isso em JavaScript, e vamos ver algumas delas a seguir.
1. Utilizando o método filter
O método filter
é uma função de ordem superior que permite filtrar os elementos de um array de acordo com uma função de teste.
Ele retorna um novo array com os elementos que passaram no teste.
Por exemplo, vamos supor que temos um array com números e queremos remover os números pares:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; const oddNumbers = numbers.filter(x => x % 2 !== 0); console.log(oddNumbers);
No exemplo acima, utilizamos o método filter
para criar um novo array oddNumbers
com apenas os números ímpares do array numbers
.
Passamos para o filter
uma função de teste que verifica se o resto da divisão do número por 2 é diferente de 0.
Assim, todos os números ímpares passam no teste e são incluídos no novo array.
Além de filtrar elementos de um array de acordo com uma função de teste, o método filter
também pode ser utilizado para filtrar elementos a partir de outro array.
Por exemplo, vamos supor que temos um array de nomes e queremos selecionar apenas os nomes que estão presentes em outro array:
const names = ['Alice', 'Bob', 'Eve', 'Charlie', 'Diana']; const selectedNames = ['Alice', 'Charlie']; const filteredNames = names.filter(name => selectedNames.includes(name)); console.log(filteredNames); // Output: ['Alice', 'Charlie']
No exemplo acima, utilizamos o método includes
do array selectedNames
para verificar se cada nome do array names
está presente no array selectedNames
. Os nomes que estão presentes são incluídos no novo array filteredNames
.
2. Utilizando a função some
Outra forma de filtrar um array a partir de elementos de outro array é utilizando a função some
.
A função some
verifica se pelo menos um elemento de um array passa no teste de uma função de teste.
Por exemplo, vamos supor que temos um array de números e queremos selecionar apenas os números que estão presentes em outro array:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; const selectedNumbers = [2, 4, 6, 8]; const filteredNumbers = numbers.filter(number => selectedNumbers.some(x => x === number)); console.log(filteredNumbers); // Output: [2, 4, 6, 8]
No exemplo acima, utilizamos a função some
para verificar se cada número do array numbers
está presente no array selectedNumbers
.
A função some
retorna true
se pelo menos um elemento do array selectedNumbers
for igual ao número atual, e false
caso contrário.
Utilizamos então a função some
dentro de um if
para incluir apenas os números que passam no teste no novo array filteredNumbers
.
3. Utilizando o operador in
Outra forma de filtrar um array a partir de elementos de outro array é utilizando o operador in
.
O operador in
verifica se um determinado elemento está presente em um array ou em um objeto.
Por exemplo, vamos supor que temos um array de nomes e queremos selecionar apenas os nomes que estão presentes em outro array:
const names = ['Alice', 'Bob', 'Eve', 'Charlie', 'Diana']; const selectedNames = ['Alice', 'Charlie']; const filteredNames = names.filter(name => name in selectedNames); console.log(filteredNames); // Output: ['Alice', 'Charlie']
No exemplo acima, utilizamos o operador in
para verificar se cada nome do array names
está presente no array selectedNames
.
Os nomes que estão presentes são incluídos no novo array filteredNames
.
Deixe um comentário contando o que achou deste artigo 🙂
Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:
Conclusão
Filtrar um array a partir de elementos de outro array é uma tarefa comum em JavaScript, e existem diversas formas de fazer isso.
No artigo, vimos três formas diferentes: utilizando o método filter
, utilizando a função some
e utilizando o operador in
.
Qual dessas formas é a mais adequada para o seu caso dependerá do que você precisa fazer e do seu gosto pessoal.
Espero que este artigo tenha ajudado a entender mais sobre como filtrar um array a partir de elementos de outro array em JavaScript.
Boa sorte em sua jornada de aprendizado!
Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.
Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!
Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!