Map, filter e reduce
-
Upload
jackson-veroneze -
Category
Software
-
view
62 -
download
4
Transcript of Map, filter e reduce
Map, Filter e ReduceCom Javascript e .NET(C#)
Jackson VeronezeSoftware Developer
[email protected]://jacksonveroneze.comhttps://br.linkedin.com/in/jacksonveroneze
Mario MendonçaSoftware Developer
[email protected]://br.linkedin.com/in/mario-mendonca
Map, Filter e ReduceNo processo de aprendizagem de uma linguagem de programação, vamos, certamente, nos deparar com o tratamento de Arrays.
Em Javascript, C# e em outras linguagens de programação, temos três recursos que são muito importantes para trabalharmos com eles: map, filter e reduce.
Javascript - Map
Pense no método map como um loop for-each que irá transformar todos os elementos de seu array. Quando usamos o método map, todos os elementos do array serão transformados e retornados como um novo array de dados.
Javascript - Map
O método map retorna uma instância de um array com o resultado retornado na função passada como argumento.
A função map irá nos ajudar a deixar o código muito mais conciso:
Javascript - Filter
Retorna somente os resultados que satisfaçam determinada condição que buscamos
Javascript - Combinando Map e Filter
Uma das grandes vantagens dos métodos map e filter é que eles retornam instâncias de Arrays, o que significa que podemos fazer utilizações como:
Javascript - Reduce
Além de modificar todos os itens de um array ou filtrar itens por determinadas condições, por vezes queremos efetuar operações que agreguem os valores, tais como a somatória de todos os itens ou a média dos valores do array.
let numbers = [1, 3, 5];let average = numbers.reduce((total, currentElement) => total + currentElement, 0) / numbers.length;
console.log(average); //3
.NET(C#)
..nosso banco armazena uma lista de contas. Estas contas possuem os mais variados correntistas, saldos e tipos. Muitas vezes, precisamos filtrá-las de alguma forma. Por exemplo, se quisermos pegar todas as contas com saldo maior que 2000 reais, fazemos:
.NET(C#)
Para filtrar uma lista, seria muito mais interessante que a própria coleção tivesse algum método que recebesse a condição que queremos aplicar nesse filtro e já implementasse a lógica do foreach.
.NET(C#) - Filter
Agora imagine que queremos saber qual é a soma do saldo de todas as contas que estão cadastradas dentro da aplicação. Para resolver esse problema, teríamos que fazer um código parecido com o seguinte:
.NET(C#) - Reduce
.NET(C#) - Reduce
.NET(C#) - Map
Exemplo real
Referências
http://www.linhadecodigo.com.br/artigo/3692/clausulas-let-group-by-e-order-by-no-linq.aspx
https://www.codeproject.com/Tips/514424/LINQ-Group-By
https://www.caelum.com.br/apostila-csharp-orientacao-objetos/linq-e-lambda/