mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-07 01:57:50 +00:00
Move internal modules to “internal” folder.
This commit is contained in:
28
.internal/shuffleSelf.js
Normal file
28
.internal/shuffleSelf.js
Normal file
@@ -0,0 +1,28 @@
|
||||
import baseRandom from './.internal/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) {
|
||||
let index = -1;
|
||||
const length = array.length;
|
||||
const lastIndex = length - 1;
|
||||
|
||||
size = size === undefined ? length : size;
|
||||
while (++index < size) {
|
||||
const rand = baseRandom(index, lastIndex);
|
||||
const value = array[rand];
|
||||
|
||||
array[rand] = array[index];
|
||||
array[index] = value;
|
||||
}
|
||||
array.length = size;
|
||||
return array;
|
||||
}
|
||||
|
||||
export default shuffleSelf;
|
||||
Reference in New Issue
Block a user