Shuffles the arrays of the given (object) map using shuffle-array.
npm install shuffle-obj-arraysconst shuffleObjArrays = require( 'shuffle-obj-arrays' );
console.log(
shuffleObjArrays( {
"foo": [ "x", "y" ],
"bar": [ "a", "b", "c", "d" ],
"baz": [ "f", "g" ]
} )
);It will print something like:
{
"foo": [ "y", "x" ],
"bar": [ "c", "b", "a", "d" ],
"baz": [ "g", "f" ]
}Version 1 accepts the same options as shuffle, plus copyNonArrays.
Syntax:
shuffleObjArrays(
obj: object,
options: { copy: false, copyNonArrays: false },
rng: (n: number): number = Math.random
): objectRandomizes the order of the elements in all arrays of the given object.
obj{object} - The given object.options{object} - Options, which may have:copy{boolean} -trueto copy the given object. Defaults tofalse.copyNonArrays{boolean} -trueto copy non-array properties of the given object. Only works whencopyistrue. Defaults tofalse.rng{function} - Custom random number generator. Defaults toMath.random.
const shuffleObjArrays = require( 'shuffle-obj-arrays' );
// Using a external pseudo-random number generator
// https://github.com/davidbau/seedrandom
const seedrandom = require( 'seedrandom' );
const options = {
copy: true,
rng: seedrandom( 'my seed' )
};
console.log(
shuffleObjArrays(
{
"foo": [ "x", "y" ],
"bar": [ "a", "b", "c", "d" ],
"baz": [ "f", "g" ],
"zoo": "non array property"
},
options
)
);It returns something like:
{
"foo": [ "y", "x" ],
"bar": [ "c", "b", "a", "d" ],
"baz": [ "g", "f" ]
}- shuffle-array - Shuffles an array using Fisher-Yates algorithm and allows to pass a custom pseudo-random number generator (PRNG)
- seedrandom - Predictive PRNG
- one-wise - One-wise combinatorial testing for the arrays of the given object.