Uma outra classe muito comum de operação em listas é a de selecionar com quais valores pertencentes à lista original se pretende trabalhar. Esse tipo de operação consiste numa FILTRAGEM de elementos.
(ex.) Se
produtos = [100, 80, 60, 120, 90]
e
queremos selecionar apenas aqueles que custem menos que 100, então:
produtosfiltrados = [80, 60, 90]
Ou seja, produtos[i] < 100
filter
Em Javascript, fazemos essa filtragem com uso de uma função pré-definida filter(f)
onde f
é a função definida que representa o critério de seleção de cada elemento.
[EXEMPLO] Programa para selecionar produtos que custem menos que R$15.
const menorQue = (limite) => (lista) => lista.filter((x)=>x<limite) const menorQue15 = menorQue(15) const listaProdutosR$ = [10.60,8.50,5.55,6.40,41.00,23.05,19.90,15.90,22.10,2.75] const resultado = menorQue15(listaProdutosR$) console.log(resultado)
[EXEMPLO] Programa para selecionar os nomes que começam com a letra "A".
const nomes = ['Felipe','Ana', 'Bia', 'Adele', 'Gui', 'Adam', 'Rafa', 'Maria'] const filtroLetra = (letra) => (texto) => texto[0] == letra const primeiraLetraA = filtroLetra('A') console.log(nomes.filter(primeiraLetraA))
[EXEMPLO] Programa para selecionar os nomes com mais de 4 letras.
const nomes = ['Felipe','Ana', 'Bia', 'Adele', 'Gui', 'Adam', 'Rafa', 'Maria'] const filtroLetra = (letra) => (texto) => texto[0] == letra const primeiraLetraA = filtroLetra('A') console.log(nomes.filter(primeiraLetraA)) const tamanhoMaiorQue = (n) => (texto) => texto.length > n const tamanhoMaiorQue4 = tamanhoMaiorQue(4) console.log(nomes.filter(tamanhoMaiorQue4))