Método filter

O método filter permite filtrar elementos de um array, mantendo apenas os que atendem a uma determinada condição. O método recebe como parâmetro uma função que será executada para cada elemento do array. Como resultado, o método retorna um novo array, que incluirá apenas os elementos para os quais a função fornecida retornar true.

É possível passar três parâmetros para a função. Se estes parâmetros estiverem presentes (eles não são obrigatórios), então o primeiro receberá automaticamente o elemento do array, o segundo receberá sua posição no array (índice), e o terceiro - o próprio array.

Sintaxe

javascriptlet novoArray = array.filter(function(elemento, indice, array) {
  código
  return true ou false
});

Exemplo

Vamos filtrar um array, mantendo nele apenas números positivos:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(function(elem) {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Resultado da execução do código:

javascript[5, 1, 1, 3, 4]

Exemplo

Vamos encurtar o código, utilizando funções seta:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(elem => {
  if (elem >= 0) {
    return true;
  } else {
    return false;
  }
});

console.log(res);

Resultado da execução do código:

javascript[5, 1, 1, 3, 4]

Exemplo

Vamos encurtar o código, utilizando encurtamento de operações lógicas:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

let res = arr.filter(elem => {
  return elem >= 0;
});

console.log(res);

Resultado da execução do código:

javascript[5, 1, 1, 3, 4]

Exemplo

Vamos encurtar o código, utilizando características das funções seta:

javascriptlet arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);

console.log(res);

Resultado da execução do código:

javascript[5, 1, 1, 3, 4]

Exemplo

Se necessário, o próprio array pode ser passado como terceiro parâmetro:

javascriptlet res = arr.filter(function(elem, index, arr) {
  // o array arr estará acessível aqui
});

Veja também

  • os métodos map e forEach,
    que permitem aplicar uma função a cada elemento do array
  • os métodos some e every,
    que realizam verificação do array
  • os métodos reduce e reduceRight,
    que reduzem o array a um único valor