Venho estudando JS há algum tempo e sempre tive muitas dificuldades. Assistindo essa aula de hoje, percebi que muitas das dificuldades que vinha enfrentando era por causa da didática. Você ensina de maneira exemplar. Pude aprender muito com você. Continue assim. Parabéns
Apenas corrigindo pessoal, no reduce a primeira propriedade da função é o accumulator e o segundo currentValue, que nesse caso foi representado por ages.
Show de bola man, vendo todos os seus videos aqui, lembrando ao pessoal mais iniciante que map, filter e reduce nao altera os indices do array original que esta sendo iterado, ele cria um novo array ha partir do principal.
Muito boa essa aula e você expliqua bem, sou iniciante e estou acompanhando seu curso a única diferença é que fiz utilizando arrow function pra diminuir o código mas acredito que você vai falar sobre arrow function mais para frente
Exercícios simples para treino com base no que foi dado até agora: 1 - Somar todos os números de 1 a 50 (ou qualquer outro número de sua escolha) 2 - Somar todos os números pares de 1 a 50 (ou qualquer outro número de sua escolha) ________________________________________ - - --------- SPOILER --------- RESOLUÇÃO ABAIXO - - _______________________________________ *********EXERCICIO 1)********** let str = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]; somador = str.reduce(function(number, acumulador){ return number+acumulador; }, 0); console.log('A soma dos numeros de 1 a 50 é = ' + somador); *********EXERCICIO 2)********** let str = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]; pares = str.filter(function(ref){ return ref % 2 ===0 }); somadorPares = pares.reduce(function(ref2, acc){ return ref2+acc; },0); console.log('Soma dos numeros pares de 1 a 50 é ' + somadorPares)
Gostei dos exercícios e resolvi faze-los, como eu já tinha estudado um pouco de loops resolvi também implementa-lo e o resultado final ficou assim: let numbers = [ ] // Adicionando 50 números a lista for (let i = 1; i
@@LuizCBonini lembrando q n precisa desse = no for, já q a condição pra ele continuar executando é o *i* ser menor que *50* , se ele é igual a *50* então n tem como ser menor
Eu fiz tbm, mas como não assisti a aula, fiz do meu jeito. Demorei horas porque não quis pesquisar kkkk. Provavelmente o que eu fiz não é o mais correto a se fazer, mas estou aprendendo: Somar os números até 50: let contador = 0; let conta = 0; While (contador != 50){ contador = contador + 1; conta = conta+contador } Console.log(conta) Somar os números pares até 50: While (contador != 50){ contador = contador + 2; conta = conta+contador } Console.log(conta) Ao menos deu certo 😊
Você inverteu a ordem na hora de explicar sobre o método reduce e o accumulator. Na verdade o accumulator é o primeiro e depois vem o correntvalue(age). Com o exemplo que você deu não faz muita diferença já que numa soma a ordem dos fatores não altera o resultado, mas vale revisar esse vídeo já que não faz sentido manter uma explicação equivocada. Esse comentário não é uma bronca ou algo do tipo, é só uma sugestão de alteração. Apesar dos pesares, obrigado pelo vídeo, realmente está me ajudando muito.
Salve Felipe! To fazendo uma maratona do seu curso e to achando bem bacana, mas acho que seria legal no caso dessa aula em específico vc de repente citar situações que seriam usados esses métodos
Imagina vc consumir uma requisicao http via get, esse get retornando uma propriedade do objeto como "valor", obviamente vc iria iterar cada objeto retornado desse json com essa propriedade citada, digamos que vc quer refletir valor total na pagina, ai que entra o reduce. Vc iria fazer a soma de todos esses valores de cada objeto do array vindo de uma requisicao get.
digamos que vc estaria mechendo em um sistema de ingressos para shows e precisasse filtrar quem e maior de idade, ai entraria o filter, vc criaria uma condicional nele filtrando quem e maior de 18 anos.
Map ainda nao precisei usar em alguma parte de sistema que mechi mas vc pode iterar o array de objetos original e almentar os valores dele, lembrando que map filter e reduce nao altera o valor do array original que esta sendo iterado.
Uma outra forma que pode ser fácil de entender o reduce tbm é vendo dessa forma: const total = age.reduce(ageTotal, 0); function ageTotal(ages, accumulator){ return age + accumulator; } Dessa forma consegui visualizar melhor do porquê que o 0 estava ali entre o ) e o }. Tinha entendido o que acontecia com ele, mas não o porquê de ser colocado bem ali -> ), 0}
Professor, ali no minuto 8:09 no caso do reduce e dos outros o primeiro argumento não é a palavra que agora representa os elementos do array, e o segundo argumento o valor atual?
é preciso usar os nome em ingles como vc fez, ou qlr nome serve? sumOfages poderia ser só adcages? para simplificar e n complicar pra quem n sabe ingles totalmente
a única coisa que não ficou clara pra mim foi, como que você constou que "AgeS", e na função usou "age" em teoria nesta parte ages.reduce(function (age
é, eu modifiquei, coloquei uma outra palavra e sim dá de colocar qualquer outra palavra sendo que seja a mesma no Return const sumofages = ages.reduce(function(Abobrinha, accumulator) { return accumulator + Abobrinha; }, 0);
Só a nível de curiosidade: No exemplo do filter eu troquei o método pelo map, e a diferença foi o tipo de dado retornado. Com filter, a função retorna números. com map, a função retorna valores lógicos (true/false).
na vdd o filter ele filtra e ele retorna booleana const arry = [1, 2, 3, 4, 5, 6, 7] arry.filter((e) => { return false; }) esse é parecido com o map msm, só acontece q vc faz um código ali(uma condição) q tem q retornar true ou false. se cair em true, o index da array(nesse caso é o *e* ) passa no filtro. se cair false, ele não passa. então nesse caso q eu pus como false, se eu der log na variável ela vai ser uma array vazia pq todas deram false
tem o array.forEach((e) =>{}) tbm. funciona parecido com os outros, soq ele n retorna nd. supondo q vc queira apenas fazer um log de todos os itens, então faria sentido usar esse método e só por um log dentro dele
Até aqui ja da para fazer algo bem legal! (deixa joinha quem viu) /** Formata Nomes */ const nome = "robson da silva almeida"; const nomes = nome.toLowerCase().split(" "); const juncoes = ["da", "das", "do", "dos", "de"]; const primeiraMaiuscula = nomes.map((n) => { if (juncoes.includes(n)) return n; return n[0].toUpperCase() + n.substring(1); }); const nomeCompleto = primeiraMaiuscula.reduce((n, acc) => { return `${n} ${acc}`; }, ""); console.log(nomeCompleto); /** Está tudo em português para entendimento, mas o recomendado é usar o inglẽs! xD */
Bom dia Felipe, estou começando agora no mundo da programação e esse seu curso tem me ajudado muito, Estou uma duvida aqui: Se eu precisar somar todas as idades de uma lista de pessoas como que eu faço,? por exemplo em uma lista com varios objetos dentro dela, onde temos membros de um club e queremos somar as idades. const membersHome = [ { firstName: 'André', lastName: 'Souza', age: 29, description: 'Daddy', }, { firstName: 'Cibele', lastName: 'Souza', age: 28, description: 'Mom', }, { firstName: 'Issac', lastName: 'Souza', age: 5, description: 'Son', }, Assim por exemplo,
André, acredito que você tenha pego uma pequena parte da lista, mas caso não, no lugar da última "," é um ) E o que o Robson escreveu está quase certo. Só faltou a palavra "function" depois dos .map e .reduce, ficando assim: const ages = membersHome.map(function(member){ return member.age; }); console.log(ages);
const sumAges = ages.reduce(function(age, acc){ return acc + age; }); console.log(sumAges); assim dará no console.log o valor certo (claro que o primeiro log escrito no código não é necessário, mas caso queira ver a idade de um por um, então o console.log(ages) fará sentido).
@@robsonsilvaalmeida7162 é vdd!! Eu tanto não conhecia isso, quanto que qnd eu tinha colocado no programa mostrava uns erros, mas agora vi que tinha sido erro meu. Q massa!
o reduce tb dá pra agrupar valores de uma propriedade, gostei da aula!
Venho estudando JS há algum tempo e sempre tive muitas dificuldades. Assistindo essa aula de hoje, percebi que muitas das dificuldades que vinha enfrentando era por causa da didática.
Você ensina de maneira exemplar. Pude aprender muito com você.
Continue assim. Parabéns
Primeiro video q vejo seu, sua didática é muito boa, parabéns!
Caramba, eu tinha bastante dificuldade para enfender esses 3 métodos, hoje eu consegui entender. Genio demais esse cara.
Apenas corrigindo pessoal, no reduce a primeira propriedade da função é o accumulator e o segundo currentValue, que nesse caso foi representado por ages.
Show de bola man, vendo todos os seus videos aqui, lembrando ao pessoal mais iniciante que map, filter e reduce nao altera os indices do array original que esta sendo iterado, ele cria um novo array ha partir do principal.
bem lembrado
boa meu mano obrigado
Essa aula EXPLODIU minha mente cara!
Muito boa essa aula e você expliqua bem, sou iniciante e estou acompanhando seu curso
a única diferença é que fiz utilizando arrow function pra diminuir o código
mas acredito que você vai falar sobre arrow function mais para frente
Top demais esse curso.
Obrigado por compartilhar o conhecimento.
Exercícios simples para treino com base no que foi dado até agora:
1 - Somar todos os números de 1 a 50 (ou qualquer outro número de sua escolha)
2 - Somar todos os números pares de 1 a 50 (ou qualquer outro número de sua escolha)
________________________________________
-
-
--------- SPOILER ---------
RESOLUÇÃO ABAIXO
-
-
_______________________________________
*********EXERCICIO 1)**********
let str = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50];
somador = str.reduce(function(number, acumulador){
return number+acumulador;
}, 0);
console.log('A soma dos numeros de 1 a 50 é = ' + somador);
*********EXERCICIO 2)**********
let str = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50];
pares = str.filter(function(ref){
return ref % 2 ===0
});
somadorPares = pares.reduce(function(ref2, acc){
return ref2+acc;
},0);
console.log('Soma dos numeros pares de 1 a 50 é ' + somadorPares)
Gostei dos exercícios e resolvi faze-los, como eu já tinha estudado um pouco de loops resolvi também implementa-lo e o resultado final ficou assim:
let numbers = [ ]
// Adicionando 50 números a lista
for (let i = 1; i
@@LuizCBonini lembrando q n precisa desse = no for, já q a condição pra ele continuar executando é o *i* ser menor que *50* , se ele é igual a *50* então n tem como ser menor
Eu fiz tbm, mas como não assisti a aula, fiz do meu jeito. Demorei horas porque não quis pesquisar kkkk. Provavelmente o que eu fiz não é o mais correto a se fazer, mas estou aprendendo:
Somar os números até 50:
let contador = 0;
let conta = 0;
While (contador != 50){
contador = contador + 1;
conta = conta+contador
}
Console.log(conta)
Somar os números pares até 50:
While (contador != 50){
contador = contador + 2;
conta = conta+contador
}
Console.log(conta)
Ao menos deu certo 😊
Eu fiz os dois exercícios separadamente, mas as variáveis são as mesmas... Esqueci de escrever a declaração no começo da última aqui no comentário
mais didático impossível. parabéns e obrigada!!!!
Suas aulas são incríveis!
Você inverteu a ordem na hora de explicar sobre o método reduce e o accumulator. Na verdade o accumulator é o primeiro e depois vem o correntvalue(age). Com o exemplo que você deu não faz muita diferença já que numa soma a ordem dos fatores não altera o resultado, mas vale revisar esse vídeo já que não faz sentido manter uma explicação equivocada.
Esse comentário não é uma bronca ou algo do tipo, é só uma sugestão de alteração. Apesar dos pesares, obrigado pelo vídeo, realmente está me ajudando muito.
Salve Felipe! To fazendo uma maratona do seu curso e to achando bem bacana, mas acho que seria legal no caso dessa aula em específico vc de repente citar situações que seriam usados esses métodos
Pois é, vejo muito disso nos cursos pela internet. (Não é uma critica negativa a esse curso, pois ele está muito esclarecedor.)
Imagina vc consumir uma requisicao http via get, esse get retornando uma propriedade do objeto como "valor", obviamente vc iria iterar cada objeto retornado desse json com essa propriedade citada, digamos que vc quer refletir valor total na pagina, ai que entra o reduce. Vc iria fazer a soma de todos esses valores de cada objeto do array vindo de uma requisicao get.
digamos que vc estaria mechendo em um sistema de ingressos para shows e precisasse filtrar quem e maior de idade, ai entraria o filter, vc criaria uma condicional nele filtrando quem e maior de 18 anos.
Map ainda nao precisei usar em alguma parte de sistema que mechi mas vc pode iterar o array de objetos original e almentar os valores dele, lembrando que map filter e reduce nao altera o valor do array original que esta sendo iterado.
forEach por sua vez altera o array original.
Parabens, aula top.
Uma outra forma que pode ser fácil de entender o reduce tbm é vendo dessa forma:
const total = age.reduce(ageTotal, 0);
function ageTotal(ages, accumulator){
return age + accumulator;
}
Dessa forma consegui visualizar melhor do porquê que o 0 estava ali entre o ) e o }. Tinha entendido o que acontecia com ele, mas não o porquê de ser colocado bem ali -> ), 0}
achei que o exemplo do video mais fácil... mas cada um cada um e vice-versa...
Maratonei, Muito Obrigado!!
5:15 (Sei que o curso tem 3 anos) mas atualmente, seria melhor utilizar:
const evenAges = ages.filter((age) => age % 2 === 0);
Ou está incorreto?
Professor, ali no minuto 8:09 no caso do reduce e dos outros o primeiro argumento não é a palavra que agora representa os elementos do array, e o segundo argumento o valor atual?
Você falou que estava repetindo demais, e eu digo,repita,repita quantas vezes puder.
é preciso usar os nome em ingles como vc fez, ou qlr nome serve? sumOfages poderia ser só adcages? para simplificar e n complicar pra quem n sabe ingles totalmente
Muito bom seus conteudos, mano! Sua voz é igualzinha do Fallen, não tem como não notar isso kkkkk
a única coisa que não ficou clara pra mim foi, como que você constou que "AgeS", e na função usou "age" em teoria nesta parte ages.reduce(function (age
é, eu modifiquei, coloquei uma outra palavra e sim dá de colocar qualquer outra palavra sendo que seja a mesma no Return
const sumofages = ages.reduce(function(Abobrinha, accumulator) {
return accumulator + Abobrinha;
}, 0);
Eu não entendo muito bem como isso pode funfar
Só a nível de curiosidade:
No exemplo do filter eu troquei o método pelo map, e a diferença foi o tipo de dado retornado.
Com filter, a função retorna números.
com map, a função retorna valores lógicos (true/false).
na vdd o filter ele filtra e ele retorna booleana
const arry = [1, 2, 3, 4, 5, 6, 7]
arry.filter((e) => {
return false;
})
esse é parecido com o map msm, só acontece q vc faz um código ali(uma condição) q tem q retornar true ou false. se cair em true, o index da array(nesse caso é o *e* ) passa no filtro. se cair false, ele não passa. então nesse caso q eu pus como false, se eu der log na variável ela vai ser uma array vazia pq todas deram false
array.filter((e) => {
let bolo = false
if(e > 4) {
bolo = true
}
return bolo;
})
// [5, 6, 7]
tem o
array.forEach((e) =>{})
tbm. funciona parecido com os outros, soq ele n retorna nd. supondo q vc queira apenas fazer um log de todos os itens, então faria sentido usar esse método e só por um log dentro dele
Até aqui ja da para fazer algo bem legal! (deixa joinha quem viu)
/** Formata Nomes */
const nome = "robson da silva almeida";
const nomes = nome.toLowerCase().split(" ");
const juncoes = ["da", "das", "do", "dos", "de"];
const primeiraMaiuscula = nomes.map((n) => {
if (juncoes.includes(n)) return n;
return n[0].toUpperCase() + n.substring(1);
});
const nomeCompleto = primeiraMaiuscula.reduce((n, acc) => {
return `${n} ${acc}`;
}, "");
console.log(nomeCompleto);
/** Está tudo em português para entendimento, mas o recomendado é usar o inglẽs! xD */
Bom dia Felipe, estou começando agora no mundo da programação e esse seu curso tem me ajudado muito,
Estou uma duvida aqui:
Se eu precisar somar todas as idades de uma lista de pessoas como que eu faço,?
por exemplo em uma lista com varios objetos dentro dela, onde temos membros de um club e queremos somar as idades.
const membersHome = [
{
firstName: 'André',
lastName: 'Souza',
age: 29,
description: 'Daddy',
},
{
firstName: 'Cibele',
lastName: 'Souza',
age: 28,
description: 'Mom',
},
{
firstName: 'Issac',
lastName: 'Souza',
age: 5,
description: 'Son',
},
Assim por exemplo,
tenta usar isso:
const ages = membersHome.map((member) => {
return member.age;
});
console.log(ages);
const sumAges = ages.reduce((age, acc) => {
return acc + age;
});
console.log(sumAges);
😁
André, acredito que você tenha pego uma pequena parte da lista, mas caso não, no lugar da última "," é um )
E o que o Robson escreveu está quase certo. Só faltou a palavra "function" depois dos .map e .reduce, ficando assim:
const ages = membersHome.map(function(member){
return member.age;
});
console.log(ages);
const sumAges = ages.reduce(function(age, acc){
return acc + age;
});
console.log(sumAges);
assim dará no console.log o valor certo (claro que o primeiro log escrito no código não é necessário, mas caso queira ver a idade de um por um, então o console.log(ages) fará sentido).
@@UmaVertice se você reparar no código, foi usado arrow function xD o código está correto! (param) =>{}
@@robsonsilvaalmeida7162 é vdd!! Eu tanto não conhecia isso, quanto que qnd eu tinha colocado no programa mostrava uns erros, mas agora vi que tinha sido erro meu. Q massa!
Esse map parece bastante um for each
Não estou conseguindo acessar os codigos do link na descrição, alguem me ajuda
arrumei os links, bro!
@@dicasparadevs opa obgdão meu mano, otimo conteúdo o seu, estou aprendendo mt ❤️
Achei q era pra iniciantes, me perdi inteiro.