Files
lodash/_shuffleSelf.js
John-David Dalton ab95e7dde7 Bump to v4.16.2.
2016-09-25 13:40:14 -07:00

30 lines
750 B
JavaScript

import baseClamp from './_baseClamp.js';
import baseRandom from './_baseRandom.js';
/**
* A specialized version of `_.shuffle` which mutates and sets the size of `array`.
*
* @private
* @param {Array} array The array to shuffle.
* @param {number} [size=array.length] The size of `array`.
* @returns {Array} Returns `array`.
*/
function shuffleSelf(array, size) {
var index = -1,
length = array.length,
lastIndex = length - 1;
size = size === undefined ? length : baseClamp(size, 0, length);
while (++index < size) {
var rand = baseRandom(index, lastIndex),
value = array[rand];
array[rand] = array[index];
array[index] = value;
}
array.length = size;
return array;
}
export default shuffleSelf;