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.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							1.2 KiB
						
					
					
				import arrayMap from './_arrayMap.js'; | 
						|
import baseAt from './_baseAt.js'; | 
						|
import basePullAt from './_basePullAt.js'; | 
						|
import compareAscending from './_compareAscending.js'; | 
						|
import flatRest from './_flatRest.js'; | 
						|
import isIndex from './_isIndex.js'; | 
						|
 | 
						|
/** | 
						|
 * Removes elements from `array` corresponding to `indexes` and returns an | 
						|
 * array of removed elements. | 
						|
 * | 
						|
 * **Note:** Unlike `_.at`, this method mutates `array`. | 
						|
 * | 
						|
 * @static | 
						|
 * @memberOf _ | 
						|
 * @since 3.0.0 | 
						|
 * @category Array | 
						|
 * @param {Array} array The array to modify. | 
						|
 * @param {...(number|number[])} [indexes] The indexes of elements to remove. | 
						|
 * @returns {Array} Returns the new array of removed elements. | 
						|
 * @example | 
						|
 * | 
						|
 * var array = ['a', 'b', 'c', 'd']; | 
						|
 * var pulled = _.pullAt(array, [1, 3]); | 
						|
 * | 
						|
 * console.log(array); | 
						|
 * // => ['a', 'c'] | 
						|
 * | 
						|
 * console.log(pulled); | 
						|
 * // => ['b', 'd'] | 
						|
 */ | 
						|
var pullAt = flatRest(function(array, indexes) { | 
						|
  var length = array == null ? 0 : array.length, | 
						|
      result = baseAt(array, indexes); | 
						|
 | 
						|
  basePullAt(array, arrayMap(indexes, function(index) { | 
						|
    return isIndex(index, length) ? +index : index; | 
						|
  }).sort(compareAscending)); | 
						|
 | 
						|
  return result; | 
						|
}); | 
						|
 | 
						|
export default pullAt;
 | 
						|
 |