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.
		
		
		
		
		
			
		
			
				
					44 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					44 lines
				
				1.2 KiB
			| 
											3 years ago
										 | var arrayMap = require('./_arrayMap'), | ||
|  |     baseAt = require('./_baseAt'), | ||
|  |     basePullAt = require('./_basePullAt'), | ||
|  |     compareAscending = require('./_compareAscending'), | ||
|  |     flatRest = require('./_flatRest'), | ||
|  |     isIndex = require('./_isIndex'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * 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; | ||
|  | }); | ||
|  | 
 | ||
|  | module.exports = pullAt; |