Bom dia. Pessoal uma duvida, no método reduce o segundo parâmetro passado ele é como se fosse um this.?
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!