0.0.4 • Published 10 years ago

scramble v0.0.4

Weekly downloads
2,645
License
MIT
Repository
github
Last release
10 years ago

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.