1.0.2 • Published 4 years ago

shuffle-obj-arrays v1.0.2

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

shuffle-obj-arrays

Build Status Greenkeeper badge

Shuffles the arrays of the given (object) map using shuffle-array.

Install

npm install shuffle-obj-arrays --save

Example

const shuffleObjArrays = require( 'shuffle-obj-arrays' );

shuffleObjArrays( {
    "foo": [ "x", "y" ],
    "bar": [ "a", "b", "c", "d" ],
    "baz": [ "f", "g" ]
} )

will return something like

{
    "foo": [ "y", "x" ],
    "bar": [ "c", "b", "a", "d" ],
    "baz": [ "g", "f" ]
}

API

shuffle-obj-arrays accepts the same options as shuffle, plus the option copyNonArrays.

shuffleObjArrays( obj, options )

Randomizes 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} - true to copy the given object. Defaults to false.
    • copyNonArrays {boolean} - true to copy non-array properties of the given object. Only works when copy is true. Defaults to false.
    • rng {function} - Custom random number generator. Defaults to Math.random.

Example:

const shuffleObjArrays = require( 'shuffle-obj-arrays' );

// Using a external pseudo-random number generator
// https://github.com/davidbau/seedrandom
const seedrandom = require( 'seedrandom' );
const myRng = seedrandom( 'my seed' );

const options = {
    copy: true,
    rng: myRng
};

shuffleObjArrays(
    {
        "foo": [ "x", "y" ],
        "bar": [ "a", "b", "c", "d" ],
        "baz": [ "f", "g" ],
        "zoo": "non array property"
    },
    options
);

will return something like

{
    "foo": [ "y", "x" ],
    "bar": [ "c", "b", "a", "d" ],
    "baz": [ "g", "f" ]
}

See also

License

MIT © Thiago Delgado Pinto