Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### Olá!
- Estou criando um curso de programação e preciso de ajuda pra entender se a forma como eu estou ensinando
- fica clara para quem está iniciando na area.
- Então vamos lá, imagine que você tem uma lista com todos funcionários que trabalham em uma empresa.
- ```javascript
- var funcionários = [
- { cargo: 'diretor', email: 'joao@mail.com' },
- { cargo: 'estagiario', email: 'maria@mail.com' },
- { cargo: 'diretor', email: 'ana@mail.com' },
- { cargo: 'gerente', email: 'julia@mail.com' },
- { cargo: 'diretor', email: 'mauricio@mail.com' },
- ]
- ```
- Mas desta lista toda você quer apenas o e-mail dos diretores para enviar um alerta sobre algo que está acontecendo na empresa.
- ```javascript
- var funcionários = [
- { cargo: 'diretor', email: 'joao@mail.com' },
- { cargo: 'diretor', email: 'ana@mail.com' },
- { cargo: 'diretor', email: 'mauricio@mail.com' },
- ]
- ```
- No nosso exemplo isso foi fácil porque a lista era pequena e continha apenas alguns nomes, mas imagine
- se a lista tivesse milhares de funcionários, como fariamos isso?
- Na programação podemos fazer isso filtrando os funcionários da lista com a ajuda de algumas funções especificas.
- Essas funções são nossas ferramentas e como toda boa ferramenta é ideal saber a hora correta de utiliza-las,
- vamos usar algumas dessas ferramentas e elas são:
- ```javascript
- var filtre = condição => itens => itens.filter(condição)
- var retorne = formato => itens => itens.map(formato)
- ```
- A ferramenta `filtre`, filtra uma lista, e a ferramenta `retorne` retorna apenas um campo especifico dessa lista.
- Utilizando dessas ferramentas, podemos melhora-las de forma a atender ainda mais a nossa necessidade dessa forma:
- ```javascript
- var éDiretor = funcionário => funcionário.cargo === 'diretor'
- ```
- Criamos então uma ferramenta chamada `éDiretor`, e com ela poderemos filtrar nossa lista de forma muito simples.
- Abaixo nós diremos para o programa filtrar apenas os funcionário que forem diretores. Para isso, combinamos a
- ferramenta que já tinhamos `filtre` com nossa nova ferramenta `éDiretor` e desta forma apenas funcionários que são diretores, serão retornados:
- ```javascript
- var filtreOsFuncionáriosQueSãoDiretores = filtre(éDiretor)(funcionários)
- ```
- ```javascript
- var funcionários = [
- {cargo: "diretor", email: "joao@mail.com"}
- {cargo: "diretor", email: "ana@mail.com"}
- {cargo: "diretor", email: "mauricio@mail.com"}
- ]
- ```
- Conseguimos ver então que já temos uma lista de funcionários filtrada apenas por diretores, mas ainda não está certo, pois só o que
- precisamos é que apenas o e-mail dessas pessoas seja retornado, então pra isso criamos uma nova ferramenta:
- ```javascript
- var somenteEmails = funcionário => funcionário.email
- ```
- Esta nossa nova ferramenta, como pode ser visto assim pega um funcionário e extrai de dentro dele o nosso campo email.
- Agora que possuimos a ferramenta `somenteEmails` podemos pegar apenas os emails da nossa lista de funcionários, e para
- utilizar ela é bem simples, basta juntar ela com nossa ferramenta `retorne`, dessa forma:
- ```javascript
- var retorneSomenteEmails = retorne(somenteEmails)
- ```
- Com isso concluímos todas as ferramentas que precisávamos criar e portanto agora é só juntarmos tudo e teremos nosso resultado desejado.
- Para juntá-las é bem simples como você pode ver abaixo:
- ```javascript
- var filtreOsFuncionáriosQueSãoDiretoresEretorneSomenteEmails = retorneSomenteEmails(filtreOsFuncionáriosQueSãoDiretores)
- ```
- Prontinho!
- Agora ao executarmos nossa nova ferramenta esse é o resultado que teremos:
- ```javascript
- ["joao@mail.com", "ana@mail.com", "mauricio@mail.com"]
- ```
- E com isso já estamos com nossa lista de e-mails, onde apenas os e-mails dos diretores aparecem. Simples, não?
- Aguardo seu feedback, qualquer dúvida ou sugestão será bem vinda!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement