Chunkify
Segments an array into chunks.
Installation
$ npm install compute-chunkify
For use in the browser, use browserify.
Usage
To use the module,
var chunkify = ;
chunkify( arr, n[, opts] )
Segments an array
into chunks of length n
.
var data = 1 2 3 4 5 6 7 8 9 10 ;var out = ;/* returns[[1,2,3],[4,5,6],[7,8,9],[10,null,null]]*/
The function is configurable and has the following options...
start
Integer
specifying the index from which to begin chunking. Default: 0
.
var opts ='start': 2;var out = ;/* returns[[2,3,4],[5,6,7],[8,9,10]]*/
truncate
Boolean
specifying whether the last chunk must contain only array
values and no padded values. Default: false
.
var opts ='truncate': true;var out = ;/* returns[[1,2,3],[4,5,6],[7,8,9]]*/
padding
By default, if the array
length is not evenly divisible by n
, the last chunk is padded with null
values. Default: true
.
To turn off padding, set this option to false
.
var opts ='padding': false;var out = ;/* returns[[1,2,3],[4,5,6],[7,8,9],[10]]*/
padding_value
The default padding value is null
. Set this option to pad with a value other than null
.
var opts ='padding_value': 0;var out = ;/* returns[[1,2,3],[4,5,6],[7,8,9],[10,0,0]]*/
delay
By default, an array
is chunked beginning with the first array
element. Default: 0
.
Set this option to pad the first chunk, where 0 < delay < n
.
var opts ='delay': 2;var out = ;/* returns[[null,null,1],[2,3,4],[5,6,7],[8,9,10]]*/
overlap
By default, the array is segmented into adjacent chunks (no overlap and no underlap). Default: 0
.
To create overlapping chunks, set the overlap option such that 0 < overlap < n
,
var opts ='overlap': 2;var out = ;/* returns[[1,2,3],[2,3,4],[3,4,5],[4,5,6],[5,6,7],[6,7,8],[7,8,9],[8,9,10],[9,10,null]]*/
To create non-adjacent chunks (underlap), set the overlap such that overlap < 0
, where |overlap|
corresponds to the number of elements to skip between new chunks.
var opts ='overlap': -4;var out = ;/* returns[[1,2,3],[8,9,10]]*/
Examples
var chunkify = ;
To run the example code from the top-level application directory,
$ node ./examples/index.js
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2014. Athan Reines.