UNPKG

900 BJavaScriptView Raw
1var copyArray = require('./_copyArray'),
2 isIndex = require('./_isIndex');
3
4/* Built-in method references for those with the same name as other `lodash` methods. */
5var 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 */
17function 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
29module.exports = reorder;