Underscore.js is a JavaScript library that provides a lot of useful functions that help in the programming in a big way like the map, filter, invoke, etc. even without using any built-in objects.
The _.restArguments() function is an inbuilt function in Underscore.js library of JavaScript which is used to find a version of the function which when invoked can receive all the arguments from and beyond the stated startIndex that is collected into a single array. The number of arguments to the function would be used to determine the startIndex when a definite value is not given.
Syntax:
_.restArguments( function, startIndex )
Parameters: This method accepts two parameters as mentioned above and described below:
- function: It is the stated function.
- startIndex: It is the start position of the rest parameter. It is an optional parameter.
Return Value: This method returns a version of the function which is when invoked can receive all the arguments from and beyond the stated index.
Example 1: In this example, a user-defined function is used.
HTML
<!DOCTYPE html> < html >   < head >     < script src =     </ script > </ head >   < body >     < script type = "text/javascript" >         // Calling restArguments method         // with its parameter         var writes =             _.restArguments(function (authors, portal) {                 return authors + portal;             });           // Calling write with its values         console.log(             writes(                 ['Nidhi1352', ' neveropen!']             )         );     </ script > </ body >   </ html > |
Output:
Nidhi1352, neveropen!
Example 2: In this example, a starting index is passed along with the user-defined function.
HTML
<!DOCTYPE html> < html >   < head >     < script src =     </ script > </ head >   < body >     < script type = "text/javascript" >         // Calling restArguments method         // with its parameter         var writes =             _.restArguments(                 function (authors, portal, articles) {                     return authors + portal + articles;                 }, [2]);           // Calling writes with its values         console.log(             writes(                 ['Nidhi1352', ' neveropen!', ' 700 ']             )         );     </ script > </ body >   </ html > |
Output:
Nidhi1352, neveropen!, 700 undefined
Example 3:
HTML
<!DOCTYPE html> < html >   < head >     < script src =     </ script > </ head >   < body >     < script type = "text/javascript" >         var call =             _.restArguments(function (who, whom) {                 return who + ' ' +                     _.initial(whom).join(', ') +                     (_.size(whom) > 2 ? ', & ' : '') +                     _.last(whom);             });           // Calling the function above         // with its values         console.log(             call(                 'She called', 'me', 'her', 'you.'             )         );     </ script > </ body > |
Output:
She called me, her, & you.