--- title: Use the Spread Operator to Evaluate Arrays In-Place --- # Use the Spread Operator to Evaluate Arrays In-Place #### Relevant Links * [Spread Operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax "Mozilla Developer Network") * [Spread Operator compared to Rest Parameter](https://stackoverflow.com/questions/33898512/spread-operator-vs-rest-parameter-in-es2015-es6 "Stack Overflow") * Image of youtube video link spread and rest parameter ideo Explaining Spread Operator and Rest Parameter * [Apply Method](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply "Mozilla Developer Network") Examples ```javascript let numbers = [-12, 160, 0, -3, 51]; let minNum = Math.min.apply(null, numbers); console.log(minNum); //-12 ``` ```javascript let numbers = [-12, 160, 0, -3, 51]; let minNum = Math.min(numbers); console.log(minNum); //NaN ``` ```javascript let numbers = [-12, 160, 0, -3, 51]; let minNum = Math.min(...numbers); console.log(minNum); //-12 ``` --- ## Solutions ```javascript const arr1 = ["JAN", "FEB", "MAR", "APR", "MAY"]; let arr2; (function() { "use strict"; arr2 = [...arr1]; // change this line })(); console.log(arr2); ``` #### Code Explanation * Unpacking the arr1 using the spread operator and then copying those values to arr2