30 lines
		
	
	
		
			785 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			785 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /** Used as the internal argument placeholder. */ | ||
|  | var PLACEHOLDER = '__lodash_placeholder__'; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Replaces all `placeholder` elements in `array` with an internal placeholder | ||
|  |  * and returns an array of their indexes. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Array} array The array to modify. | ||
|  |  * @param {*} placeholder The placeholder to replace. | ||
|  |  * @returns {Array} Returns the new array of placeholder indexes. | ||
|  |  */ | ||
|  | function replaceHolders(array, placeholder) { | ||
|  |   var index = -1, | ||
|  |       length = array.length, | ||
|  |       resIndex = 0, | ||
|  |       result = []; | ||
|  | 
 | ||
|  |   while (++index < length) { | ||
|  |     var value = array[index]; | ||
|  |     if (value === placeholder || value === PLACEHOLDER) { | ||
|  |       array[index] = PLACEHOLDER; | ||
|  |       result[resIndex++] = index; | ||
|  |     } | ||
|  |   } | ||
|  |   return result; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = replaceHolders; |