30 lines
		
	
	
		
			900 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			900 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| var copyArray = require('./_copyArray'),
 | |
|     isIndex = require('./_isIndex');
 | |
| 
 | |
| /* Built-in method references for those with the same name as other `lodash` methods. */
 | |
| var nativeMin = Math.min;
 | |
| 
 | |
| /**
 | |
|  * Reorder `array` according to the specified indexes where the element at
 | |
|  * the first index is assigned as the first element, the element at
 | |
|  * the second index is assigned as the second element, and so on.
 | |
|  *
 | |
|  * @private
 | |
|  * @param {Array} array The array to reorder.
 | |
|  * @param {Array} indexes The arranged array indexes.
 | |
|  * @returns {Array} Returns `array`.
 | |
|  */
 | |
| function reorder(array, indexes) {
 | |
|   var arrLength = array.length,
 | |
|       length = nativeMin(indexes.length, arrLength),
 | |
|       oldArray = copyArray(array);
 | |
| 
 | |
|   while (length--) {
 | |
|     var index = indexes[length];
 | |
|     array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
 | |
|   }
 | |
|   return array;
 | |
| }
 | |
| 
 | |
| module.exports = reorder;
 |