30 lines
		
	
	
		
			898 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			898 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import copyArray from './_copyArray.js';
 | 
						|
import isIndex from './_isIndex.js';
 | 
						|
 | 
						|
/* 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;
 | 
						|
}
 | 
						|
 | 
						|
export default reorder;
 |