# Get the Sum of all Numbers in a Set using JavaScript Last updated: Oct 30, 2021

## Get the Sum of all Numbers in a Set#

To get the sum of the numbers in a `Set`:

1. Initialize a `sum` variable and set it to `0`.
2. Use the `forEach()` method to iterate over the `Set`.
3. On each iteration, add the number to the `sum`, reassigning the variable.
index.js
```Copied!```const set1 = new Set([1, 2, 3, 4]);

let sum = 0;
set1.forEach(num => {
sum += num;
});

console.log(sum); // 👉️ 10
``````

The function we passed to the Set.forEach method gets called with each element in the `Set` object.

On each iteration, we add the number to the value of `sum` and reassign the variable to the result.

Note that the `sum` variable is declared using the `let` keyword. Had the variable been declared using `const`, we wouldn't be able to reassign it.

This gives us the total of all the numbers in the `Set`.

An alternative, and more functional approach is to convert the `Set` to an array and use the Array.reduce method.

To get the sum of the numbers in a `Set`:

1. Convert the `Set` to an array.
2. Use the `reduce()` method to iterate over the array.
3. On each iteration, add the number to the accumulator and return the result.
index.js
```Copied!```const set1 = new Set([1, 2, 3, 4]);

const arr = Array.from(set1);
console.log(arr); // 👉️ [1, 2, 3, 4]

const sum = arr.reduce((accumulator, current) => {
return accumulator + current;
}, 0);

console.log(sum); // 👉️ 10
``````

We used the Array.from method to convert the `Set` into an array, so we can call the `reduce()` method.

The second parameter we passed to the callback function in the `reduce` method is the initial value for the `accumulator` variable, in our case `0`.

On each iteration, we add the number to the accumulated value and return the result.

The accumulated value gets passed to the function on each iteration, until the sum of the elements is calculated.

This approach is very similar to the previous one, however using the `forEach` method on the `Set` might be more intuitive if you're not familiar with the `reduce` method.