Numbers Prefer Multiplication
    Wondering what’s next for npm?Check out our public roadmap! »

    scramble

    0.0.4 • Public • Published

    ScrambleJS

    Efficient shuffling of arrays and strings in JavaScript

    Getting it

    ScrambleJS is available as Node module

    $ npm install scramble --save

    As well as a bower component

    $ bower install scramble --save 

    Or it can be directly set up from this repo

    $ git clone git@github.com:sanchitgera/ScrambleJS
    cd ScrambleJS/
    $ npm install 
    $ npm run uglify

    Usage

    On the server

    var scramble = require('scramble');
     
    var input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    var output = scramble(input); 

    In the browser

    <script src="./path/to/my/scripts/scrambled.min.js"></script>
    <script>
      scramble('This is a long string with way too many spaces');
    </script> 

    Options

    Preserve

    You can additionally preserve a portion of the array and have it fixed through the scrambling process. For example,

    var input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
     
    for( var i = 0; i < 3; i++) {
      scramble(input, {
        preserve: [2, 5]
      });
    }
    //Output 1 
    [ 8, 10, 3, 4, 5, 6, 7, 1, 9, 2 ]
    //Output 2
    [ 2, 10, 3, 4, 5, 6, 8, 1, 7, 9 ]
    //Output 3
    [ 1, 8, 3, 4, 5, 6, 7, 2, 9, 10 ]
     

    This preserves the elements between the indices 2 and 5 (inclusive) in every iteration.

    Attach

    Scramble can be invoked as a native function on arrays and strings by calling attach first.

    // Attaches scramble as a native function
    scramble.attach(); 
     
    var inputArray = ['foo', 'bar', 'baz'];
    inputArray.scramble();
     
    var inputString = 'Hello World!';
    inputString.scramble();

    Modifying built in objects isn't, however, best practice necessarily. Be careful :)

    Testing

    All tests are contained in lib/scrambleSpec. To run them,

    $ npm install 
    $ npm test
    

    License

    Copyright (c) 2015, Sanchit Gera. (MIT License)

    See LICENSE for more info.

    Install

    npm i scramble

    DownloadsWeekly Downloads

    2,641

    Version

    0.0.4

    License

    MIT

    Last publish

    Collaborators

    • avatar