# freeCodeCamp Challenge Guide: Use the Rest Parameter with Function Parameters

**URL:** <https://forum.freecodecamp.org/t/freecodecamp-challenge-guide-use-the-rest-parameter-with-function-parameters/301221>\
**Category:** freeCodeCamp Contributors\
**Tags:** guide\
**Created:** [August 3, 2019, 5:51am UTC](https://forum.freecodecamp.org/t/freecodecamp-challenge-guide-use-the-rest-parameter-with-function-parameters/301221 "2019-08-03T05:51:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![camperbot](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/camperbot/32/18364_2.png) [@camperbot](https://forum.freecodecamp.org/u/camperbot)\
**Post date:** [August 3, 2019, 5:51am UTC](https://forum.freecodecamp.org/t/freecodecamp-challenge-guide-use-the-rest-parameter-with-function-parameters/301221/1 "2019-08-03T05:51:54Z")

</div>

# [Use the Rest Parameter with Function Parameters](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/es6/use-the-rest-parameter-with-function-parameters)

#### Relevant LInks

- [Rest parameter explanation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters "Mozilla Developer Network")

- [Spread operator compared to rest parameter](https://stackoverflow.com/questions/33898512/spread-operator-vs-rest-parameter-in-es2015-es6 "Stack Overflow")

- Video explaining spread and rest

[![](https://img.youtube.com/vi/iLx4ma8ZqvQ/maxresdefault.jpg "...spread operator and rest operator - Beau teaches JavaScript") ](https://www.youtube.com/watch?v=iLx4ma8ZqvQ)

## Hints

### Hint 1

This code

```javascript
const product = (n1, n2, n3) => {
  const args = [n1, n2, n3];
  let total = 0;
  for (let i = 0; i < args.length; i++) {
    total += args[i];
  }
  return total;
}
console.log(product(2, 4, 6)); //48

```

Can be written as such

```javascript
const product = (...n) => {
  let total = 0;
  for (let i = 0; i < n.length; i++) {
    total += n[i];
  }
  return total;
}
console.log(product(2, 4, 6)); //48

```

* * *

## Solutions

> **Solution 1 (Click to Show/Hide)**
>
> ```javascript
> const sum = (...args) => {
> let total = 0;
> for (let i = 0; i < args.length; i++) {
> total += args[i];
> }
> return total;
> }
> console.log(sum(1, 2, 3)); // 6
> 
> ```

---

<div class="post-metadata">

**Author:** ![ILM](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/ilm/32/363239_2.png) [@ILM](https://forum.freecodecamp.org/u/ILM)\
**Post date:** [January 8, 2025, 3:58pm UTC](https://forum.freecodecamp.org/t/freecodecamp-challenge-guide-use-the-rest-parameter-with-function-parameters/301221/2 "2025-01-08T15:58:49Z")

</div>


