You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					24 lines
				
				909 B
			
		
		
			
		
	
	
					24 lines
				
				909 B
			| 
								 
											3 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The base implementation of `_.reduce` and `_.reduceRight`, without support
							 | 
						||
| 
								 | 
							
								 * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @private
							 | 
						||
| 
								 | 
							
								 * @param {Array|Object} collection The collection to iterate over.
							 | 
						||
| 
								 | 
							
								 * @param {Function} iteratee The function invoked per iteration.
							 | 
						||
| 
								 | 
							
								 * @param {*} accumulator The initial value.
							 | 
						||
| 
								 | 
							
								 * @param {boolean} initAccum Specify using the first or last element of
							 | 
						||
| 
								 | 
							
								 *  `collection` as the initial value.
							 | 
						||
| 
								 | 
							
								 * @param {Function} eachFunc The function to iterate over `collection`.
							 | 
						||
| 
								 | 
							
								 * @returns {*} Returns the accumulated value.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
							 | 
						||
| 
								 | 
							
								  eachFunc(collection, function(value, index, collection) {
							 | 
						||
| 
								 | 
							
								    accumulator = initAccum
							 | 
						||
| 
								 | 
							
								      ? (initAccum = false, value)
							 | 
						||
| 
								 | 
							
								      : iteratee(accumulator, value, index, collection);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  return accumulator;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = baseReduce;
							 |