Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. ### Olá!
  2.  
  3. Estou criando um curso de programação e preciso de ajuda pra entender se a forma como eu estou ensinando
  4. fica clara para quem está iniciando na area.
  5. Então vamos lá, imagine que você tem uma lista com todos funcionários que trabalham em uma empresa.
  6. ```javascript
  7. var funcionários = [
  8. { cargo: 'diretor', email: 'joao@mail.com' },
  9. { cargo: 'estagiario', email: 'maria@mail.com' },
  10. { cargo: 'diretor', email: 'ana@mail.com' },
  11. { cargo: 'gerente', email: 'julia@mail.com' },
  12. { cargo: 'diretor', email: 'mauricio@mail.com' },
  13. ]
  14. ```
  15.  
  16. Mas desta lista toda você quer apenas o e-mail dos diretores para enviar um alerta sobre algo que está acontecendo na empresa.
  17. ```javascript
  18. var funcionários = [
  19. { cargo: 'diretor', email: 'joao@mail.com' },
  20. { cargo: 'diretor', email: 'ana@mail.com' },
  21. { cargo: 'diretor', email: 'mauricio@mail.com' },
  22. ]
  23. ```
  24.  
  25. No nosso exemplo isso foi fácil porque a lista era pequena e continha apenas alguns nomes, mas imagine
  26. se a lista tivesse milhares de funcionários, como fariamos isso?
  27. Na programação podemos fazer isso filtrando os funcionários da lista com a ajuda de algumas funções especificas.
  28. Essas funções são nossas ferramentas e como toda boa ferramenta é ideal saber a hora correta de utiliza-las,
  29. vamos usar algumas dessas ferramentas e elas são:
  30. ```javascript
  31. var filtre = condição => itens => itens.filter(condição)
  32. var retorne = formato => itens => itens.map(formato)
  33. ```
  34.  
  35. A ferramenta `filtre`, filtra uma lista, e a ferramenta `retorne` retorna apenas um campo especifico dessa lista.
  36. Utilizando dessas ferramentas, podemos melhora-las de forma a atender ainda mais a nossa necessidade dessa forma:
  37. ```javascript
  38. var éDiretor = funcionário => funcionário.cargo === 'diretor'
  39. ```
  40.  
  41. Criamos então uma ferramenta chamada `éDiretor`, e com ela poderemos filtrar nossa lista de forma muito simples.
  42. Abaixo nós diremos para o programa filtrar apenas os funcionário que forem diretores. Para isso, combinamos a
  43. ferramenta que já tinhamos `filtre` com nossa nova ferramenta `éDiretor` e desta forma apenas funcionários que são diretores, serão retornados:
  44. ```javascript
  45. var filtreOsFuncionáriosQueSãoDiretores = filtre(éDiretor)(funcionários)
  46. ```
  47.  
  48. ```javascript
  49. var funcionários = [
  50. {cargo: "diretor", email: "joao@mail.com"}
  51. {cargo: "diretor", email: "ana@mail.com"}
  52. {cargo: "diretor", email: "mauricio@mail.com"}
  53. ]
  54. ```
  55.  
  56. 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
  57. precisamos é que apenas o e-mail dessas pessoas seja retornado, então pra isso criamos uma nova ferramenta:
  58. ```javascript
  59. var somenteEmails = funcionário => funcionário.email
  60. ```
  61.  
  62. Esta nossa nova ferramenta, como pode ser visto assim pega um funcionário e extrai de dentro dele o nosso campo email.
  63. Agora que possuimos a ferramenta `somenteEmails` podemos pegar apenas os emails da nossa lista de funcionários, e para
  64. utilizar ela é bem simples, basta juntar ela com nossa ferramenta `retorne`, dessa forma:
  65. ```javascript
  66. var retorneSomenteEmails = retorne(somenteEmails)
  67. ```
  68.  
  69. Com isso concluímos todas as ferramentas que precisávamos criar e portanto agora é só juntarmos tudo e teremos nosso resultado desejado.
  70. Para juntá-las é bem simples como você pode ver abaixo:
  71. ```javascript
  72. var filtreOsFuncionáriosQueSãoDiretoresEretorneSomenteEmails = retorneSomenteEmails(filtreOsFuncionáriosQueSãoDiretores)
  73. ```
  74.  
  75. Prontinho!
  76. Agora ao executarmos nossa nova ferramenta esse é o resultado que teremos:
  77. ```javascript
  78. ["joao@mail.com", "ana@mail.com", "mauricio@mail.com"]
  79. ```
  80.  
  81. E com isso já estamos com nossa lista de e-mails, onde apenas os e-mails dos diretores aparecem. Simples, não?
  82. Aguardo seu feedback, qualquer dúvida ou sugestão será bem vinda!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement