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

 

About the Author

Alexandre Eduardo Cardoso
Alexandre Eduardo Cardoso

Meu nome é Alexandre Cardoso e tenho 41 anos. Sou programador desde 2008, quando comecei a estudar e me especializar em PHP e Javascript. Já em 2011, dei minhas primeiras aulas de programação, e não consegui mais parar desde então. Ensinar é minha missão neste mundo!

1 Comment

Leave a comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *