Underscore.js _.reduce() Function
The _.reduce() function is an inbuilt function in Underscore.js that is used to transform an array’s/object’s properties into one single value or is used to create a single result from a given list of values. When all the elements of the list are passed to the function/iterate and no more elements remains then the _.each loop ends. The iterate function makes use of memorization, i.e. it is remembering the return value each time it calculates a value. Syntax:
_.reduce(list, iteratee, memo)
Parameters: This function accept three parameters as mentioned above and described below:
- list: It is the list containing some elements.
- iterate: It is the function which is used to take all the elements of the list and it also remember all the returned value.
- memo: It is a value.
Return value: It returns the value of the last iteration is returned by the _.reduce() function.
1) Passing a list of numbers to _.reduce() function: The ._reduce() function takes the element from the list one by one and do the specified operations on the code. Like here the operation is addition of the elements of the list. After adding all the elements, the reduce function ends. Here the starting value of memo is taken as ‘0’.
Output: 2) Passing and not passing the value of memo: If we are not passing memo variable’s value then it takes the value of the first element from the list. Otherwise it takes the mentioned value.
Output: 3) Finding out the value of num variable: The ‘num’ variable is a variable which stores the values of the list elements. Therefore since we are returning the value at the end when the function gets over, so, this implies that the list is also over. Therefore, the last element of the list will be printed.
Output: 4) Applying logical operators in the _.reduce() function: From the above examples we are clear that in the value of memo is 1 and that of num is 5 (for this example only). So, we can apply the logical operator (>, <) to compare the values of num and memo and then print their values.