Bom dia. Pessoal uma duvida, no método reduce o segundo parâmetro passado ele é como se fosse um this.?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Bom dia. Pessoal uma duvida, no método reduce o segundo parâmetro passado ele é como se fosse um this.?
Olá Felix, tudo bem ?
Não entendi direito o que você quis dizer com: "como se fosse um this", na verdade o segundo parâmetro do reduce vai ser o valor inicial do nosso acumulador:
array.reduce( (acumulador, elementoAtual) => {
return ....
}, valorInicial);Nesse código a variável valorInicial será atribuída ao acumulador ao iniciar a função para que seja possível realizar as operações com cada elemento do array
Abraços e Bons Estudos!
Boa noite
model.negociacoes.reduce((total, n) => total + n.volume,0.0) Essa função veio do curso JS avançado I O parâmetro que eu quero passar é uma propriedade do meu objeto chamada "volume", pra isso eu uso uma variável "n", este n seria como um "this.volume"?
Estou postando pois não entendi, porque não passar 'this.volume' se é justamente esse parâmetro que quero passar para minha função e fazer a soma delas.
Opa Felix, agora ficou mais fácil :)
Na verdade esse segundo parâmetro não é do reduce e sim da função de callback, mas vou explicar:
Quando fazemos model.negociacoes.reduce estamos pegando o array de negociações, então vamos supor que ele está dessa maneira:
_negociacoes = [ negociacao1, negociacao2, negociacao3, negociacao4, negociacao5];
E estamos passando a função que será executado em cada elemento, em nosso caso essa função é (total, n) => total + n.volume
Isso quer dizer que o n irá começar como o negociacao1 (primeiro elemento do array) e iremos somar o valor do negociacao1.volume, depois n será o negociacao2 e dessa forma iremos passar por todas negociações e somando seu volume
Agora em relação a sua dúvida:
Estou postando pois não entendi, porque não passar 'this.volume' se é justamente esse parâmetro que quero passar para minha função e fazer a soma delas.
Na verdade não temos como acessar o this.volume pois o que temos é apenas um array de negociação, então o this só iria referenciar o próprio array que não tem essa propriedade, no caso o n irá referenciar cada negociação, e dessa forma temos acesso ao volume :)
Conseguiu compreender? Abraços e Bons Estudos!