bb09986b0319e42e7a0006e97fb9c79d740630a7
[yaffs-website] / node_modules / uncss / node_modules / lodash / internal / reorder.js
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;