Javascript Logo

Javascript Rest & Spread Operators

Rest and Spread operators in Javascript will help you work with arrays and save you some typing. See the inline comments below for context.

USAGE: Copy and paste the code samples below into the Javascript console in your browser, then simply hit return on your keyboard to see the code in action.

//Rest operator
/*The 3 dots before the passed reference name 
//tells the function to create an array of 
whatever gets passed to it*/
function sumUp(...toAdd) {
  let result = 0;
  for (i = 0; i < toAdd.length; i++) {
    result += toAdd[i];
  return result;
console.log(sumUp(100, 10, "20"));

//SPREAD operator (opposite to the 
//Rest operator)
//Copy the contents from one array 
//into another easily!
let array1 = 
let array2 = 
['Sam','Steve','Mitchell', ...array1];

//Find the largest value in 
//an array of numbers
let scores = [97,94,90,77,74,73,60];

/*Copying an array used to be a PITA 
because JS copies objects by reference, 
so your copy is literally a copy and 
not a standalone new object (changes 
to the original array immediately 
appear in your copied array)*/
let myarray1 = [11,12,13];
//let myarray2 = myarray1;
let myarray2 = [...myarray1];
console.log(myarray2); //this will change 
//based on how you declare myarray2 
//(spread operator)

//Use the Spread operator to aggregate the 
//arguments passed into a function
let fun1 = function(...args){