Como somar um array de números com o javascript
Vou começar com um exemplo bem simples, vou criar um array com alguns números aleatórios: var numbers = [1,56,78,32,45];
, agora para soma-los precisarei percorrer esse array com um laço de repetição, mais precisamente o for, e a cada iteração vou somar os números e guardá-los em uma variável previamente criada antes de chamar o for.
Vamos ao exemplo:
var numbers = [1,56,78,32,45]; var sum = 0; for(var i =0;i<numbers.length;i++){ sum+=numbers[i]; } console.log(sum);
Esse com certeza é o jeito mais comumente feito, e não tem nada de errado em fazer dessa maneira, mas tem outro jeito que talvez muitos não conheçam, principalmente quem ainda está iniciando, que é usar o método reduce.
var numbers = [1,56,78,32,45]; var sum = numbers.reduce(function(accumulator,value){ return accumulator + value },0); console.log(sum);
Antes de continuar, quero deixar claro que o intuito desse artigo não é explicar como funciona o for ou reduce, e sim como utilizá-los para chegar ao meu objetivo, que é somar os valores dentro de um array.
Eu posso deixar esse reduce ainda mais simples, fazer ele em uma linha só.
var numbers = [1,56,78,32,45]; var sum = numbers.reduce((accumulator,value) => accumulator + value,0); console.log(sum);
Mas e se eu quiser utilizar o for ou o reduce em um objeto?Somar os valores de uma propriedade de um objeto em um array de objetos?Com isso em mente considere o array de objetos abaixo.
var users = [ { name:'Alexandre', age:45 }, { name:'Joao', age:12 }, { name:'Marcos', }
Se eu quiser somar a propriedade age de cada um dos objetos do array?
Utilizando o for:
var users = [ { name:'Alexandre', age:45 }, { name:'Joao', age:12 }, { name:'Marcos', age:10 } ] var sum = 0; for(var i =0;i<users.length;i++){ sum+=users[i].age; } console.log(sum);
Ali na soma veja que estou chamando a propriedade age(sum+=users[i].age
), e assim somando os valores dessa propriedade em cada iteração.
Agora usando o reduce:
var users = [ { name:'Alexandre', age:45 }, { name:'Joao', age:12 }, { name:'Marcos', age:10 } ] var sum = users.reduce(function(accumulator,object){ return accumulator + object.age },0); console.log(sum);
Muito simples, certo?
Espero sinceramente que agora você saiba como somar os valores de um array no javascript.
🔥Visite meu canal no YouTube para mais conteúdo: Visite o canal
Olá.
Muito Boa sua explicação.
Mas, eu tenho um objeto com o seguinte formato.
var arrObj = [ {5: 2, 6: 2, 3: 2, 4: 1, 8: 1} ];
Como ficaria neste caso?