Bump to v3.0.0.

This commit is contained in:
John-David Dalton
2015-01-10 12:55:03 -08:00
committed by jdalton
commit 5379c1996b
350 changed files with 12910 additions and 0 deletions

36
collection/shuffle.js Normal file
View File

@@ -0,0 +1,36 @@
import baseRandom from '../internal/baseRandom';
import toIterable from '../internal/toIterable';
/**
* Creates an array of shuffled values, using a version of the Fisher-Yates
* shuffle. See [Wikipedia](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle)
* for more details.
*
* @static
* @memberOf _
* @category Collection
* @param {Array|Object|string} collection The collection to shuffle.
* @returns {Array} Returns the new shuffled array.
* @example
*
* _.shuffle([1, 2, 3, 4]);
* // => [4, 1, 3, 2]
*/
function shuffle(collection) {
collection = toIterable(collection);
var index = -1,
length = collection.length,
result = Array(length);
while (++index < length) {
var rand = baseRandom(0, index);
if (index != rand) {
result[index] = result[rand];
}
result[rand] = collection[index];
}
return result;
}
export default shuffle;