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;
 |