time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_reorder.js (900B)


      1 var copyArray = require('./_copyArray'),
      2     isIndex = require('./_isIndex');
      3 
      4 /* Built-in method references for those with the same name as other `lodash` methods. */
      5 var nativeMin = Math.min;
      6 
      7 /**
      8  * Reorder `array` according to the specified indexes where the element at
      9  * the first index is assigned as the first element, the element at
     10  * the second index is assigned as the second element, and so on.
     11  *
     12  * @private
     13  * @param {Array} array The array to reorder.
     14  * @param {Array} indexes The arranged array indexes.
     15  * @returns {Array} Returns `array`.
     16  */
     17 function reorder(array, indexes) {
     18   var arrLength = array.length,
     19       length = nativeMin(indexes.length, arrLength),
     20       oldArray = copyArray(array);
     21 
     22   while (length--) {
     23     var index = indexes[length];
     24     array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
     25   }
     26   return array;
     27 }
     28 
     29 module.exports = reorder;