How To Randomize Subset Of Array In Javascript?
Solution 1:
You can adjust the array shuffle method that is described here: http://jsfromhell.com/array/shuffle It is based on Fisher-Yates (Knuth) algorithm (http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).
Solution 2:
I would just use the built in slice, concat and sort methods. Something like this.
functionshuffle(arr, start, end) {
return arr.slice(start, end).sort(function() { return.5 - Math.random(); }).concat(arr.slice(end));
};
That's the basic idea, you probably want to make an algorithm to slice every 10 elements, sort and rejoin the sets.
EDIT: Read comments below for why this solution may not be suitable for your needs.
Solution 3:
I would split the 1 array into 10 subsets, then perform a shuffle algorithm of your choice on those subsets, and then recombine in the correct order.
Solution 4:
The following shuffles the specified chunk of an array in place, as randomly as the environment's random number generator will allow:
functionshuffleSubarray(arr, start, length) {
var i = length, temp, index;
while (i--) {
index = start + Math.floor(i * Math.random());
temp = arr[index];
arr[index] = arr[start + i];
arr[start + i] = temp;
}
return arr;
}
var a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
alert( shuffleSubarray(a, 2, 5) );
Post a Comment for "How To Randomize Subset Of Array In Javascript?"