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
let novoArray = array.filter(function(elemento, indice, array) {
código
return true ou false
});
Exemplo
Vamos filtrar um array, mantendo nele apenas números positivos:
let 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:
[5, 1, 1, 3, 4]
Exemplo
Vamos encurtar o código, utilizando funções seta:
let 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:
[5, 1, 1, 3, 4]
Exemplo
Vamos encurtar o código, utilizando encurtamento de operações lógicas:
let 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:
[5, 1, 1, 3, 4]
Exemplo
Vamos encurtar o código, utilizando características das funções seta:
let 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:
[5, 1, 1, 3, 4]
Exemplo
Se necessário, o próprio array pode ser passado como terceiro parâmetro:
let res = arr.filter(function(elem, index, arr) {
// o array arr estará acessível aqui
});