├── README.md ├── dowhile.js ├── every.js ├── filter.js ├── filter2.js ├── find.js ├── for.js ├── foreach.html ├── foreach.js ├── forin.js ├── forof.js ├── forof2.js ├── forof3.js ├── forof4.html ├── map.js ├── reduce.js ├── reduce2.js ├── some.js └── while.js /README.md: -------------------------------------------------------------------------------- 1 | 2 | # 8 Formas de usar Looping em Arrays no JavaScript 3 | 4 | # 1. For 5 | > A instrução for cria um loop que consiste em três expressões opcionais, dentro de parênteses e separadas por ponto e vírgula, seguidas por uma declaração ou uma sequência de declarações executadas em sequência. 6 | #### Syntax 7 | ```javascript 8 | for (let i = 0; condição; i++) { 9 | declaração 10 | } 11 | ``` 12 | 13 | 14 | 15 | # 2. While 16 | > A declaração while cria um laço que executa uma rotina especifica enquanto a condição de teste for avaliada como verdadeira. A condição é avaliada antes da execução da rotina. 17 | #### Syntax 18 | ```javascript 19 | while (condição) { 20 | rotina 21 | } 22 | ``` 23 | 24 | # 3. ForEach 25 | > O forEach executa o callback fornecido uma vez para cada elemento da ordem com um valor atribuido. Ele não é invocado para propriedades de índices que foram deletados ou que não foram inicializados (por ex. em arrays esparsos). 26 | 27 | ```javascript 28 | array.forEach(function(element, index) { 29 | declaração 30 | }) 31 | ``` 32 | 33 | > Obs: O seu return é sempre undefined 34 | 35 | # 4. Map 36 | > O método map() invoca a função callback passada por argumento para cada elemento do Array e devolve um novo Array como resultado. 37 | 38 | #### Sintaxe 39 | ```javascript 40 | array.map(function(element, index) { 41 | declaração 42 | }) 43 | ``` 44 | 45 | # 5. Filter 46 | > O método filter() cria um novo array com todos os elementos que passaram no teste implementado pela função fornecida. 47 | 48 | #### Sintaxe 49 | ```javascript 50 | let newArray = array.filter(function(element, index) { 51 | declaração 52 | }) 53 | ``` 54 | 55 | # 6. Reduce 56 | > O método reduce() executa uma função redutor (fornecida por você) para cada elemento do array, resultando num único valor de retorno. 57 | 58 | > O valor de retorno da sua função reducer é atribuída ao acumulador. O acumulador, com seu valor atualizado, é repassado para cada iteração subsequente pelo array, que por fim, se tornará o valor resultante, único, final. 59 | 60 | #### Sintaxe 61 | ```javascript 62 | array.reduce(function(acumulador, valorAtual) { 63 | declaração 64 | }, valorInicial) 65 | ``` 66 | 67 | ## parâmetros 68 | ##### function 69 | > é executada em cada valor no array (exceto no primeiro, se nenhum valorInicial for passado); recebe quatro argumentos: 70 | ##### acumulador 71 | > O valor retornado na última invocação do callback, ou o argumento valorInicial, se fornecido (exemplo abaixo). 72 | ##### valorAtual 73 | > O elemento atual que está sendo processado no array. 74 | ##### valorInicial 75 | > Opcional. Valor a ser usado como o primeiro argumento da primeira chamada da função callback. Se nenhum valorInicial é fornecido, o primeiro elemento do array será usado como o valor inicial do acumulador e o valorAtual não será lido. Chamar reduce() em uma array vazia sem valor inicial retornará um erro. 76 | 77 | # 7. Every 78 | > O método every() testa se todos os elementos do array passam pelo teste implementado pela função fornecida. 79 | 80 | ### Sintaxe 81 | arr.every(callback[, thisArg]) 82 | ```javascript 83 | array.every(function(element) { 84 | declaração 85 | }) 86 | ``` 87 | 88 | #### Valor de retorno 89 | >true se a função de callback retorna um valor truthy para cada um dos elementos do array; caso contrário, false. 90 | 91 | # 8. Some 92 | > O método some() testa se algum dos elementos no array passam no teste implementado pela função atribuída. 93 | 94 | #### Sintaxe 95 | ```javascript 96 | array.some(function(element) { 97 | declaração 98 | }) 99 | ``` 100 | 101 | > some() executa a função callback uma vez para cada elemento presente no array até achar um onde o callback retorne um valor true. Se em qualquer dos elementos o valor for encontrado, some() imediatamente retorna true. Caso contrario, some() retorna false. 102 | -------------------------------------------------------------------------------- /dowhile.js: -------------------------------------------------------------------------------- 1 | const bolsaVanessa = [ 2 | 'cartão de crédito', 3 | 'chaves', 4 | 'dinheiro', 5 | 'escova de cabelo', 6 | 'lenço de papel', 7 | 'perfume', 8 | 'alcool gel' 9 | ] 10 | 11 | let index = 0 12 | do { 13 | console.log(`${index + 1}. ${bolsaVanessa[index]}`) 14 | index++ 15 | } 16 | while (index < bolsaVanessa.length) -------------------------------------------------------------------------------- /every.js: -------------------------------------------------------------------------------- 1 | const idadeFamilia = [{ 2 | nome: 'Vanessa', 3 | idade: 39 4 | }, 5 | { 6 | nome: 'Gabriel', 7 | idade: 39 8 | }, 9 | { 10 | nome: 'Bielzinho', 11 | idade: 11 12 | }, 13 | { 14 | nome: 'Felipe', 15 | idade: 3 16 | }, 17 | ] 18 | 19 | const ehAdulto = valor => valor.idade >= 18 20 | const somenteAdulto = idadeFamilia.every(ehAdulto) 21 | console.log(somenteAdulto) -------------------------------------------------------------------------------- /filter.js: -------------------------------------------------------------------------------- 1 | const numeros = [12, 24, 56, 34, 2, 567, 2, 6, 88, 3, 5, 7, 754] 2 | const par = n => n % 2 === 0 3 | const numerosPar = numeros.filter(par) 4 | 5 | console.log(`Array com numeros pares: ${numerosPar}`) -------------------------------------------------------------------------------- /filter2.js: -------------------------------------------------------------------------------- 1 | const videoResolutions = [ 2 | ['QVGA', '320x240', '4:3'], 3 | ['VGA', '640x480', '4:3'], 4 | ['VGA', '720x480', '4:3'], 5 | ['SVGA', '800x600', '4:3'], 6 | ['XGA', '1024x768', '16:9'], 7 | ['WXGA - HD¹/720p', '1280x720', '16:9'], 8 | ['WXGA¹', '1366x768', '16:9'], 9 | ['WXGA +', '1440x900', '16:10(8:5)'], 10 | ['UXGA', '1600x900', '16:9'], 11 | ['UXGA++', '1680x1050', '16:10(8:5)'], 12 | ['Full HD / 1080p', '1920x1080', '16:9'], 13 | ['Full HD Ultra Wide[1]', '2560x1080', '21:9'], 14 | ['WQHD', '2560x1440', '16:9'], 15 | ['4K Ultra HD / 2160p', '3840x2160', '16:9'], 16 | ['8K UHDTV / 4320p', '7680x4320', '16:9'], 17 | ['10K UHDTV', '10240×4320', '21:9'], 18 | ['10K UHDTV', '10328×7760', '4:3'], 19 | ] 20 | 21 | const resolution16_9 = videoResolutions.filter(value => value[2] === '16:9') 22 | 23 | console.log(resolution16_9) -------------------------------------------------------------------------------- /find.js: -------------------------------------------------------------------------------- 1 | const sobremesas = [{ 2 | nome: 'pudim', 3 | diet: true, 4 | }, 5 | { 6 | nome: 'gelatina', 7 | diet: false, 8 | }, 9 | { 10 | nome: 'bolo de chocolate', 11 | diet: false, 12 | }, 13 | { 14 | nome: 'pavê', 15 | diet: true, 16 | }, 17 | ]; 18 | 19 | const isDiet = item => item.diet 20 | const sobremesa = sobremesas.find(isDiet); 21 | console.log(sobremesa) -------------------------------------------------------------------------------- /for.js: -------------------------------------------------------------------------------- 1 | const bolsaVanessa = [ 2 | 'cartão de crédito', 3 | 'chaves', 4 | 'dinheiro', 5 | 'escova de cabelo', 6 | 'lenço de papel', 7 | 'perfume', 8 | 'alcool gel' 9 | ] 10 | 11 | for (let index = 0; index < bolsaVanessa.length; index++) { 12 | console.log(`${index+1}. ${bolsaVanessa[index]}`) 13 | if (bolsaVanessa[index] == 'dinheiro') break 14 | } 15 | 16 | for (let index = 0; index < bolsaVanessa.length; index++) { 17 | if (bolsaVanessa[index] == 'dinheiro') continue 18 | console.log(`${index+1}. ${bolsaVanessa[index]}`) 19 | } -------------------------------------------------------------------------------- /foreach.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ForEach 8 | 9 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Bloco 1
32 |
Bloco 2
33 |
Bloco 3
34 |
Bloco 4
35 |
Bloco 5
36 |
Bloco 6
37 |
Bloco 7
38 |
Bloco 8
39 |
40 | 41 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /foreach.js: -------------------------------------------------------------------------------- 1 | const bolsaVanessa = [ 2 | 'cartão de crédito', 3 | 'chaves', 4 | 'dinheiro', 5 | 'escova de cabelo', 6 | 'lenço de papel', 7 | 'perfume', 8 | 'alcool gel' 9 | ] 10 | 11 | bolsaVanessa.forEach((value, index) => { 12 | console.log(`${index+1}. ${value}`) 13 | }) -------------------------------------------------------------------------------- /forin.js: -------------------------------------------------------------------------------- 1 | const familia = [{ 2 | nome: 'Gabriel', 3 | papel: 'pai' 4 | }, 5 | { 6 | nome: 'Vanessa', 7 | papel: 'mae' 8 | }, 9 | { 10 | nome: 'Gabriel', 11 | papel: 'filho' 12 | }, 13 | { 14 | nome: 'Felipe', 15 | papel: 'filho' 16 | }, 17 | ] 18 | 19 | for (let pessoa in familia) { 20 | console.log(familia[pessoa]) 21 | } -------------------------------------------------------------------------------- /forof.js: -------------------------------------------------------------------------------- 1 | const bolsaVanessa = [ 2 | 'cartão de crédito', 3 | 'chaves', 4 | 'dinheiro', 5 | 'escova de cabelo', 6 | 'lenço de papel', 7 | 'perfume', 8 | 'alcool gel' 9 | ] 10 | 11 | for (let item of bolsaVanessa) { 12 | console.log(item) 13 | } -------------------------------------------------------------------------------- /forof2.js: -------------------------------------------------------------------------------- 1 | const videos = [{ 2 | id: 'p9mqWsPJEY4', 3 | title: 'Teclado Mecânico é Melhor pra Programação? + Desafio de Youtubers Tech // Vlog #117', 4 | views: 37208 5 | }, 6 | { 7 | id: 'Vxl5jUltHBo', 8 | title: 'Python na Prática fazendo Web Scraping (de JavaScript dinâmico) // Mão no Código #28', 9 | views: 22510 10 | }, 11 | { 12 | id: 'Xzt7GbQIQTk', 13 | title: 'As TOP 7 Profissões de Tecnologia do Futuro (O PROGRAMADOR VAI ACABAR?) // Vlog #112', 14 | views: 34732 15 | }, 16 | ] 17 | 18 | for (let video of videos) { 19 | console.log(video) 20 | } -------------------------------------------------------------------------------- /forof3.js: -------------------------------------------------------------------------------- 1 | const canal = "Código Fonte TV" 2 | 3 | for (let letra of canal) { 4 | console.log(letra) 5 | } -------------------------------------------------------------------------------- /forof4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | For Of 8 | 9 | 24 | 25 | 26 | 27 |
28 |

Este é o canal Código Fonte (que começou com um Blog) e que nós chamamos carinhosamente de CDFTV ou o canal 29 | dos CDFs no Youtube.

30 |

Nossos CDFs são os nossos "CóDigo Fonters"!

31 |

Desde de Janeiro de 2016 o canal publica vídeos semanalmente comigo (Gabriel Fróes) e minha esposa Vanessa 32 | Weber.

33 |

Somos um casal de programadores apaixonados por tecnologia desde 1996 e por aqui temos a missão de ajudar a 34 | todos que queiram trabalhar com TI.

35 |

Falamos sobre esse mundo maravilhoso da programação de uma forma diferente e divertida, além de contar nossas 36 | experiências na área.

37 |
38 | 39 | 40 | 41 | 42 | 43 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /map.js: -------------------------------------------------------------------------------- 1 | const temperaturaCelsius = [0, 22, 31, 40, 45, 12, 3] 2 | const toFahrenheit = value => ((value * 9) / 5) + 32 3 | const temperaturaFahrneheit = temperaturaCelsius.map(toFahrenheit) 4 | 5 | console.log(temperaturaCelsius) 6 | console.log(temperaturaFahrneheit) -------------------------------------------------------------------------------- /reduce.js: -------------------------------------------------------------------------------- 1 | const videos = [{ 2 | id: 'p9mqWsPJEY4', 3 | title: 'Teclado Mecânico é Melhor pra Programação? + Desafio de Youtubers Tech // Vlog #117', 4 | views: 37208 5 | }, 6 | { 7 | id: 'Vxl5jUltHBo', 8 | title: 'Python na Prática fazendo Web Scraping (de JavaScript dinâmico) // Mão no Código #28', 9 | views: 22510 10 | }, 11 | { 12 | id: 'Xzt7GbQIQTk', 13 | title: 'As TOP 7 Profissões de Tecnologia do Futuro (O PROGRAMADOR VAI ACABAR?) // Vlog #112', 14 | views: 34732 15 | }, 16 | ] 17 | 18 | const totalViews = videos.reduce((sum, video) => { 19 | return sum + video.views 20 | }, 0) 21 | 22 | console.log(totalViews) -------------------------------------------------------------------------------- /reduce2.js: -------------------------------------------------------------------------------- 1 | const videos = [{ 2 | id: 'p9mqWsPJEY4', 3 | title: 'Teclado Mecânico é Melhor pra Programação? + Desafio de Youtubers Tech // Vlog #117', 4 | views: 37208, 5 | likes: 1000 6 | }, 7 | { 8 | id: 'Vxl5jUltHBo', 9 | title: 'Python na Prática fazendo Web Scraping (de JavaScript dinâmico) // Mão no Código #28', 10 | views: 22510, 11 | likes: 5000 12 | }, 13 | { 14 | id: 'Xzt7GbQIQTk', 15 | title: 'As TOP 7 Profissões de Tecnologia do Futuro (O PROGRAMADOR VAI ACABAR?) // Vlog #112', 16 | views: 34732, 17 | likes: 5700 18 | }, 19 | ] 20 | 21 | const totalViews = videos.reduce((sum, video) => { 22 | sum.views += video.views 23 | sum.likes += video.likes 24 | return sum 25 | }, { 26 | views: 0, 27 | likes: 0 28 | }) 29 | 30 | console.log(totalViews) -------------------------------------------------------------------------------- /some.js: -------------------------------------------------------------------------------- 1 | const idadeFamilia = [{ 2 | nome: 'Vanessa', 3 | idade: 39 4 | }, 5 | { 6 | nome: 'Gabriel', 7 | idade: 39 8 | }, 9 | { 10 | nome: 'Bielzinho', 11 | idade: 11 12 | }, 13 | { 14 | nome: 'Felipe', 15 | idade: 3 16 | }, 17 | ] 18 | 19 | const ehAdulto = valor => valor.idade >= 18 20 | const temAdulto = idadeFamilia.some(ehAdulto) 21 | console.log(temAdulto) -------------------------------------------------------------------------------- /while.js: -------------------------------------------------------------------------------- 1 | const bolsaVanessa = [ 2 | 'cartão de crédito', 3 | 'chaves', 4 | 'dinheiro', 5 | 'escova de cabelo', 6 | 'lenço de papel', 7 | 'perfume', 8 | 'alcool gel' 9 | ] 10 | 11 | let index = 0 12 | while (index < bolsaVanessa.length) { 13 | console.log(`${index + 1}. ${bolsaVanessa[index]}`) 14 | index++ 15 | } --------------------------------------------------------------------------------