38 lines
		
	
	
		
			939 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			939 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var baseUnset = require('./_baseUnset'), | ||
|  |     isIndex = require('./_isIndex'); | ||
|  | 
 | ||
|  | /** Used for built-in method references. */ | ||
|  | var arrayProto = Array.prototype; | ||
|  | 
 | ||
|  | /** Built-in value references. */ | ||
|  | var splice = arrayProto.splice; | ||
|  | 
 | ||
|  | /** | ||
|  |  * The base implementation of `_.pullAt` without support for individual | ||
|  |  * indexes or capturing the removed elements. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Array} array The array to modify. | ||
|  |  * @param {number[]} indexes The indexes of elements to remove. | ||
|  |  * @returns {Array} Returns `array`. | ||
|  |  */ | ||
|  | function basePullAt(array, indexes) { | ||
|  |   var length = array ? indexes.length : 0, | ||
|  |       lastIndex = length - 1; | ||
|  | 
 | ||
|  |   while (length--) { | ||
|  |     var index = indexes[length]; | ||
|  |     if (length == lastIndex || index !== previous) { | ||
|  |       var previous = index; | ||
|  |       if (isIndex(index)) { | ||
|  |         splice.call(array, index, 1); | ||
|  |       } else { | ||
|  |         baseUnset(array, index); | ||
|  |       } | ||
|  |     } | ||
|  |   } | ||
|  |   return array; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = basePullAt; |